一, 故事的引子
最近的项目跟Visual Studio 2010有关,
组里面有个兄弟(C同学), 以前用惯了eclipse, 尤其喜欢Eclipse中的下面这几个快捷键
Alt+UP: Move Lines UP
Alt+Down: Move Lines Down
但是搜了一下microsoft vs2010的快捷键, 只有将当前行下移的命令,
SHIFT+ALT+T: Edit.LineTranspose, Moves the line that contains the cursor below the next line.
这显然是一个Autohotkey问题, 毕竟我已经自己写过AHK脚本扩展vs2008了,
然而实际操作的时候却发现并非一帆风顺, 问题是这样的...
二, 问题来了 :
使用AU3_Spy.exe查看了, Visual Studio 2010同学的ahk_class, 他变成了下面这样:
而且最主要的是, 对于每个实例, 上面标记出来的红字部分不完全相同,
比如有时候, 他会变成下面这样:
三, 解决方案 :
可以把代码写成下面这个样子,
在文件头设置 SetTitleMatchMode RegEx
这样一来, 便可以像下面这个样子, 使用正则表达式, 匹配窗口的ahk_class
IfWinActive ahk_class HwndWrapper*
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. SetTitleMatchMode RegEx ; run StyleCop #IfWinActive ahk_class HwndWrapper* $F12:: ;your code here ;MouseClick, left, 317, 213 ;Sleep, 200 return #IfWinActive