如何彻底隐藏ApplicationFrameHost.exe窗口(如Win10设置、照片、邮件)
彻底隐藏ApplicationFrameHost.exe窗口(含任务栏图标)的AutoHotkey方案
WinHide命令只能隐藏UWP窗口(比如Windows设置、照片、邮件)的本体,但任务栏图标会保留——原因是这类窗口的任务栏显示由窗口的扩展样式控制,WinHide不会修改这个样式。下面是可行的解决方法:
核心方案:修改窗口扩展样式+隐藏窗口
通过移除窗口的WS_EX_APPWINDOW扩展样式(对应十六进制值0x40000),让系统不再显示任务栏图标,再结合WinHide彻底隐藏窗口本体:
; 彻底隐藏Settings窗口 WinGet, hWnd, ID, ahk_class ApplicationFrameWindow ahk_exe ApplicationFrameHost.exe, Settings if (hWnd) { ; 移除任务栏图标关联的扩展样式 WinSet, ExStyle, -0x40000, ahk_id %hWnd% ; 隐藏窗口本体 WinHide, ahk_id %hWnd% MsgBox, 窗口及任务栏图标已彻底隐藏 } else { MsgBox, 未找到目标窗口 } ; 恢复窗口及任务栏图标 WinGet, hWnd, ID, ahk_class ApplicationFrameWindow ahk_exe ApplicationFrameHost.exe, Settings if (hWnd) { ; 恢复任务栏图标关联样式 WinSet, ExStyle, +0x40000, ahk_id %hWnd% ; 显示窗口本体 WinShow, ahk_id %hWnd% MsgBox, 窗口及任务栏图标已恢复 }
替代方案:调用Windows底层API
通过DllCall调用系统API ShowWindow,结合扩展样式修改,效果和上面一致,更贴近底层操作:
; 定义系统常量:SW_HIDE = 0,SW_SHOW = 5 SW_HIDE := 0 SW_SHOW := 5 ; 彻底隐藏窗口 WinGet, hWnd, ID, ahk_class ApplicationFrameWindow ahk_exe ApplicationFrameHost.exe, Settings if (hWnd) { WinSet, ExStyle, -0x40000, ahk_id %hWnd% DllCall("ShowWindow", "Ptr", hWnd, "Int", SW_HIDE) MsgBox, 窗口及任务栏图标已彻底隐藏 } ; 恢复显示 WinGet, hWnd, ID, ahk_class ApplicationFrameWindow ahk_exe ApplicationFrameHost.exe, Settings if (hWnd) { WinSet, ExStyle, +0x40000, ahk_id %hWnd% DllCall("ShowWindow", "Ptr", hWnd, "Int", SW_SHOW) MsgBox, 窗口及任务栏图标已恢复 }
注意事项
- 替换代码中的
Settings为目标窗口的标题(比如照片、邮件),也可以直接去掉标题参数,匹配所有ApplicationFrameHost窗口。 - 部分UWP窗口可能关联多个ApplicationFrameHost进程,建议用
WinGet, hWnd, ID精准定位单个窗口,避免误操作。
内容的提问来源于stack exchange,提问作者Zigatronz
相关产品推荐
相关产品推荐

