当前位置: 首页 >> 榆树网-系统 >> 文章正文

AutoHotKey-梦里寻她千百度

在此之前,由于工作需要,曾经使用过其他一些鼠标点击软件,如:鼠标点击精灵,但是软件的功能、稳定性和可扩展性都不够,程序相对说来比较死板。近日,使用VLC转播电视节目,在Win下的VLC长期运行会意外出错,并且询问是否提交反馈,此时就需要人为干预,一开始试着找寻关闭此对话框的方法,最终Google到这样一篇文章,还好通过Google翻译后还是能够看懂的:http://www.wenzk.com/archives/539,作者提到使用AutoHotKey这个软件,并且提供一个可以关闭VLC错误对话框的脚本,感觉这个软件应该比较强大。

在访问官方网站:http://www.autohotkey.com,简单浏览了一下软件的功能和Quick-start Tutorial,增加对这个软件的信心:

1、AutoHotKey是Windows下的一个开源软件。

2、可以模拟键盘输入和鼠标击键,并且可以编写宏或录制宏来实现程序自动化。

3、为键盘、鼠标和游戏杆创建热键,这些热键也可以是组合键。

4、自动扩展你的输入,如输入:btw自动扩展成:by the way。

5、将脚本转换成一个可执行的exe文件。

等等还有诸多功能。

参考Quick-start TutorialCommand Reference后编写了一个脚本,为一些常用的程序设置了快捷键,并且很好的处理了一些程序之间的依赖关系。(如:启动Putty之前检查Pageant是否已经在后台运行等等)。

; HotKeys Index
; Win+K        打开KeePass程序
; Ctrl+Alt+F    打开Firefox程序
; Ctrl+Alt+P    打开Putty程序
; Ctrl+Alt+N    打开记事本
; Ctrl+Alt+V    打开Notepad2
; Ctrl+Alt+C    打开计算器
; Ctrl+Alt+Q    打开QQ程序

; Functions
; check_keepass()    Check Keepass is Open or not

; functions for check keepass running or not
check_keepass(){
DetectHiddenWindows, on
SetTitleMatchMode, 2
IfWinNotExist - KeePass Password Safe
{
Run %A_ProgramFiles%\KeePass\KeePass.exe D:\test.kdbx
sleep,1000
loop {
IfWinActive, Open Database -
sleep,100
else
{
; 检查是否输入错误密码
sleep,100
IfWinExist KeePass,Failed to load the specified file!
{
WinActivate
ControlFocus, 确定,KeePass,Failed to load the specified file!
send {Enter}
sleep,2000
}
else
break
}
}
}
}

; Start Keepass
#k::check_keepass()

; Check Pageant && start Putty
^!p::
check_keepass()
DetectHiddenWindows, on
IfWinNotExist Pageant
{
Run %A_ProgramFiles%\putty\PAGEANT.EXE D:\test.PPK
sleep,1000
loop {
IfWinActive, Pageant: Enter Passphrase
sleep,100
else
break
}
}

ifWinExist PuTTY Configuration
WinActivate
else
Run %A_ProgramFiles%\putty\putty.exe
return

; Check & Open Notepad
^!n::
IfWinExist 无标题 - 记事本
WinActivate
else
Run Notepad
return

; Check & Open Notepad2
^!v::
IfWinExist Untitled - Notepad2
WinActivate
else
Run vi
return

; Check & Open Calulator
^!c::
IfWinExist 计算器
WinActivate
else
Run calc
return

; Open or Active Firefox
^!f::
check_keepass()
SetTitleMatchMode, 2
IfWinExist Mozilla Firefox
WinActivate
else
Run %A_ProgramFiles%\Mozilla Firefox 3.6 Beta 5\firefox.exe
return

; Check & Open QQ
^!q::
check_keepass()
IfWinExist QQ2009
WinActivate
else
Run %A_ProgramFiles%\Tencent\QQ\Bin\QQ.exe
return

以上脚本创建了一些快捷键,并且在启动程序间检查相关依赖性,在启动Firefox、QQ、Pageant之前启动Keepass这个密码管理程序,在启动Putty之前启动Pageant程序。

当然AutoHotKey程序远比上面脚本中强大得多,具体可以参考官方的相关文档。

相关文章

One Response to “AutoHotKey-梦里寻她千百度”

  1. alswl 说:

    看到
    SetTitleMatchMode, 2
    原来如此~

发表评论