指定窗口不会被最小化和窗口坐标归位

; 窗口最大化或最小化时钩子调用 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

给TA捐赠
共{{data.count}}人
人已捐赠
其他

初入AHk,望大佬 解惑

2021-11-21 13:28:47

其他教程

托盘图标鼠标按键触发更改

2021-11-24 8:59:03

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索