Aby uzyskać natychmiastowe powiadomienie o pojawiającym się oknie, użyj haka muszelkowego. Czasami jest to tak szybkie, że autohotkey może zareagować, zanim jeszcze zobaczysz okno.
Hak na muszlę został zademonstrowany na AutoHotkey Forum.
Przykładem z użytkowania (prawie dosłownej ze stanowiska Forum):
#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
}
}
Jeśli chcesz korzystać z literalnego symbolu% w poleceniu, uciec z ucieczki charakter AutoHotkey, tym grawis `(na tym samym klawiszu co ~ na klawiaturze amerykańskiej):
MsgBox You are 200`% awesome!
Romale, Czy możesz otworzyć szpiega okna, gdy aktywne jest przypomnienie o odpoczynku w WorkRave? Otwieranie szpiega systemu Windows następuje po kliknięciu ikony AHK prawym przyciskiem myszy. Szpieg okienny zawsze będzie na górze. Po aktywowaniu ekranu WorkRave powinieneś zobaczyć szczegóły (w tym ahk_class). Nie wiem, co chcesz zrobić ze znakiem%. –
Romale, jak dotąd szczęście? –
1. Windowsowy szpieg nie może zatrzymać pierwszego ostrzeżenia workrave'a na górze ostrzeżenia. Ale przechwyciłem to przez listę okien (ahk_class). Jak mogę powiązać akcję, kiedy się pojawi? 2. Przykład, nie działa: 5 :: {%} % :: {5} –