- 隐藏窗口:
- 按下
F1热键,将鼠标下的活动窗口隐藏。 - 隐藏的窗口信息会添加到托盘菜单中,显示窗口标题和图标。
- 按下
- 恢复窗口:
- 单击托盘图标,选择需要恢复的窗口菜单项,窗口会重新显示。
- 退出脚本:
- 托盘菜单中点击
Exit,所有被隐藏的窗口会自动恢复。
- 托盘菜单中点击
; https://www.autohotkey.com/boards/viewtopic.php?f=6&t=92431
#NoEnv
#Persistent
#SingleInstance, Force
SetFormat, IntegerFast, Hex
SetBatchLines, -1
SetWinDelay, -1
Global Cached_Windows := {}
Menu, Tray, NoStandard
Menu, Tray, Icon, C:\Windows\system32\shell32.dll, 3
Menu, Tray, Add, Exit, Exit
Menu, Tray, Icon, Exit, C:\Windows\system32\shell32.dll, 113
Return
; 按F1将鼠标下的窗口最小化的托盘脚本图标中,点击脚本图标可选择恢复窗口
F1::
WinGet, WinID, ID, A
WinGet, WinIcon, ProcessPath, ahk_id %WinID%
WinGetTitle, WinTitle, ahk_id %WinID%
WinGet, Style, Style, ahk_id %WinID%
if (Style & 0xC00000) { ; If active window has titlebar
ObjRawSet(Cached_Windows, WinID, WinID)
BoundGivePar := Func("MenuItemClick").Bind(WinID, WinTitle)
if (StrLen(WinTitle) > 50)
WinTitle := SubStr(WinTitle, 1, 50) "..."
Menu, Tray, Insert, 1&, %WinTitle%, %BoundGivePar%
Menu, Tray, Icon, %WinTitle%, %WinIcon%
WinHide, ahk_id %WinID%
}
Return
MenuItemClick(WinID, WinTitle, ItemName, ItemPosition) {
WinShow, ahk_id %WinID%
Cached_Windows.Delete(WinID)
Menu, Tray, Delete, %ItemPosition%&
}
Exit:
For index, WinID in Cached_Windows
WinShow, ahk_id %WinID%
ExitApp
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。

评论(0)