2016-11-08 86 views
0

我寫了一個記事本++宏,將SQL查詢轉換爲Vb字符串粘貼到我的VB代碼。記事本+宏不處理按鈕

主要的是,你可以只按Ctrl + Shift + E和宏應該在SQL線從轉換的東西像 SELECT a FROM b TO "SELECT a FROM b" & vbCrLf & _然後光標應該移動到下一行。

這就是我的宏如下所示:

<Macro name="VB Script" Ctrl="yes" Alt="no" Shift="yes" Key="69"> 
    <Action type="0" message="2453" wParam="0" lParam="0" sParam="" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam='&quot;' /> 
    <Action type="0" message="2451" wParam="0" lParam="0" sParam="" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam='&quot;' /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="&amp;" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="v" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="b" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="c" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="r" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="l" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="f" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="&amp;" /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam=" " /> 
    <Action type="1" message="2170" wParam="0" lParam="0" sParam="_" /> 
    <Action type="0" message="2300" wParam="0" lParam="0" sParam="" /> 
</Macro> 

我有一些不同的方法檢查,確定此線將移動光標下移一行:

<Action type="0" message="2300" wParam="0" lParam="0" sParam="" />

的問題是僅在第一行執行整個宏並向下移動一行。但是之後的任何一條線都不會向下移動。

+0

我剛剛試過你的宏,當我用這個文本處理時,它完美地工作:'SELECT a FROM b'(四行)。 Ctrl + Shift + E快捷鍵工作,並且「運行直到文件結束」模式也起作用。我正在使用NotePad ++ 6.8.1。你對這組文本有相同的結果嗎? – Sam

+0

在'SELECT a FROM b'超過4行(使用Run直到文件結尾)時,它停在第二行。只需使用快捷鍵即可停止在第二行。我正在使用版本6.9.2 我在想,是不是因爲它試圖在第2行自動完成「vbCrLf」這個詞。因爲它一直在彈出列表。 –

+1

@Sam我發現了它。正如我剛纔認爲的自動完成。我按照這裏的指示禁用了它:'http:// stackoverflow.com/questions/21263705/how-do-i-stop-notepad-from-showing-autocomplete-for-all-words-in-the-file'現在這個宏很完美。 –

回答

0

關閉自動完成可以解決問題。

要關閉自動完成按照下列指示:

https://stackoverflow.com/questions/21263705/how-do-i-stop-no‌​tepad-from-showing-a‌​utocomplete-for-all-‌​words-in-the-file

這樣看來好像記事本++的時候自動完成菜單彈出停止宏的執行。

IE:宏執行所有代碼,因爲它會正確添加所有字母。然後,當它需要激活Down Arrow鍵時,它仍然會執行代碼,但是在彈出的下拉菜單中,而不是光標所在的行。