; 窗口最大化或最小化时钩子调用 wParam=5 有时会失效,原因未知
Global 后台WinTitle:="ahk_class HH Parent"
DllCall("RegisterShellHookWindow", "Ptr", A_ScriptHwnd)
OnMessage(DllCall("RegisterWindowMessage", "Str", "ShellHook"), "ShellEvent")
;活动窗口切换监控【异步触发】
/* wParam参数:
;1 顶级窗体被创建 ;2 顶级窗体即将被关闭 ;54 退出全屏 ;32772 窗口切换
;3 SHELL 的主窗体将被激活 ;4 顶级窗体被激活 ;&H8000& 掩码 ;53 全屏
;5 顶级窗体被最大化或最小化 ;6 Windows 任务栏被刷新,也可以理解成标题变更
;7 任务列表的内容被选中 ;8 中英文切换或输入法切换 ;13 wParam=被替换的顶级窗口的hWnd
;9 显示系统菜单 ;10 顶级窗体被强制关闭 ;14 wParam=替换顶级窗口的窗口hWnd
;12 没有被程序处理的APPCOMMAND。见WM_APPCOMMAND
*/
; 目标窗口激活再最小化后,窗口会移动到主监视器左上角【用于还原移出屏幕的窗口】
ShellEvent(wParam, lParam) {
Static 后台窗口正激活
; 还原最小化的目标窗口
PostMessage, 0x0112, 0xF120,,, %后台WinTitle%
; wParam=5 有时会失效,原因未知
if (wParam=5) && (后台窗口正激活=1)
WinMove, %后台WinTitle%,, 0, 0
后台窗口正激活 := WinActive(后台WinTitle) ? 1 : 0
}
F1::
if onoff := !onoff
WinMove, %后台WinTitle%,, 2220, 0
else
WinMove, %后台WinTitle%,, 222, 0
Return
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。