要获得出现窗口的即时通知,请使用 Shell Hook。有时速度太快了,以至于在您自己看到窗口之前自动热键就可以做出反应。
上演示了一个 shell hook自动热键论坛 http://www.autohotkey.com/forum/viewtopic.php?p=123323.
您的用法示例(几乎从论坛帖子中逐字复制):
#Persistent
SetBatchLines, -1
Process, Priority,, High
Gui +LastFound
hWnd := WinExist()
DllCall( "RegisterShellHookWindow", UInt,hWnd )
MsgNum := DllCall( "RegisterWindowMessage", Str,"SHELLHOOK" )
OnMessage( MsgNum, "ShellMessage" )
Return
ShellMessage( wParam,lParam )
{
If ( wParam = 1 ) ; HSHELL_WINDOWCREATED := 1
{
WinGetTitle, Title, ahk_id %lParam%
If ( Title = "WorkRest" )
WinClose, ahk_id %lParam% ; close it immideately
}
}
如果要在命令中使用文字 % 符号,请使用 AutoHotkey 转义字符、反引号 `(与美式键盘上的 ~ 位于同一键上)对其进行转义,如下所示:
MsgBox You are 200`% awesome!