起因:
看来好多类似的AutoHotkey脚本,写的有头有尾,但自己用的时候全没用,索性研究一下,然后带来简洁有效的脚本。
脚本:
~z & x:: ;同时按z和x打开Opera
{
if WinExist("Opera") { ;如果Opera存在
WinActivate ;激活他
} else { ;否则
Run "D:\Lnk\Dock\Opera GX.lnk" ;用本地文件打开Opera
}
Return ;使每次按组合键后都能执行该脚本
}
以上是一种情况,只用程序标题就能准确识别窗口,但还有一些麻烦的情况。
~s & a:: ;同时按s和a打开TIM
{
if WinExist("ahk_exe TIM.exe") {
WinActivate
} else {
Run "D:\Lnk\Dock\TIM.lnk"
}
Return
}
麻烦但不算太麻烦的情况出现了!你在TIM的一个名为"啊吧啊吧"的群聊天时,这个窗口就只叫"啊吧啊吧",而不像上面的情况一样(上面,窗口名称很长,但一定有"Opera";而此时,窗口名称不会有"TIM",也就不能只用名称来识别)。
既然不能用名称识别窗口,那就在第三行的括号里加入"ahk_exe"即可。至于为啥,去看AutoHotkey官网帮助手册就知道了。
~c & x:: ;同时按c和x打开文件管理器
{
if WinExist("ahk_class CabinetWClass") {
WinActivate
} else {
SendEvent "{e}{LWin down}"
KeyWait "AppsKey"
SendEvent "{e}{LWin up}"
}
Return
}
呃啊,第三种情况,打开电脑的资源管理器。当你在一个文件夹时,和第二种情况一样,窗口名称会变成文件夹的名字,在第三行的括号里加入"ahk_class"用来指定资源管理器的类(CabinetWClass),这样无论窗口叫啥名,AutoHotkey脚本都知道他就是资源管理器。
else里的东西是键盘重映射的组合键。如果没有if等,想把c和x映射为其他按键很容易,但有if就不能用普通方法来了。这里我把"同时按c和x"映射为"同时按左win和e",有点麻烦,想改成其他的话照猫画虎就好。