Code: Select all
msg := DllCall("RegisterWindowMessageW", "Str", "SHELLHOOK", "UInt")
DllCall("RegisterShellHookWindow", "Ptr", A_ScriptHwnd)
OnMessage(msg, "WM_SHELLHOOKMESSAGE")
OnExit("Deregister")
Esc::ExitApp
q::
hTarget := WinActive("A")
WinGetTitle title, % "ahk_id " hTarget
MsgBox % "Now watching: " title
Return
WM_SHELLHOOKMESSAGE(wParam, lParam, msg, hwnd) {
static HSHELL_WINDOWACTIVATED := 0x0004
, HSHELL_RUDEAPPACTIVATED := 0x8004
, PREVIOUS_LPARAM := 0
global hTarget
if (wParam = HSHELL_WINDOWACTIVATED || wParam = HSHELL_RUDEAPPACTIVATED)
{
if (PREVIOUS_LPARAM = hTarget)
{
ToolTip % "Window focus changed"
SetTimer RemoveTooltip, -1000
}
}
PREVIOUS_LPARAM := lParam
}
RemoveTooltip() {
ToolTip
}
Deregister() {
DllCall("DeregisterShellHookWindow", "Ptr", A_ScriptHwnd)
}