2016-11-08 55 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键时,它仍然会执行代码,但是在弹出的下拉菜单中,而不是光标所在的行。