Чтобы получать мгновенное уведомление о появлении окна, используйте Shell Hook. Иногда это происходит так быстро, что autohotkey может среагировать еще до того, как вы сами увидите окно.
Перехватчик оболочки демонстрируется на форуме AutoHotkey.
Пример с вашим использованием (почти дословно скопировано из сообщения на форуме):
#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
}
}
Если вы хотите использовать буквальный символ% в команде, экранируйте его с помощью escape-символа AutoHotkey, обратной кавычки `(на той же клавише, что и ~ на американской клавиатуре), например:
MsgBox You are 200`% awesome!
person
infogulch
schedule
10.02.2012