AutoHotKey脚本收集

脚本如下:

; 全局变量存储隐藏的窗口列表
global HiddenWindows := []

; 按下 Alt + Q 隐藏该窗口

; 按下 Alt + Shift + Q 恢复窗口

; 按下 Alt + Shift + L 查看隐藏的窗口列表(完整版)

; 按下 Ctrl + Alt + X 退出脚本

; Alt + Q 隐藏鼠标所在的窗口
!q::
{
    global HiddenWindows ; 声明使用全局变量
    
    ; 获取鼠标当前位置的窗口ID
    MouseGetPos ,, &MouseWin
    
    ; 获取窗口标题用于显示
    WinTitle := WinGetTitle(MouseWin)
    
    try {
        ; 隐藏窗口前先保存信息
        windowInfo := Map()
        windowInfo["id"] := MouseWin
        windowInfo["title"] := WinTitle
        windowInfo["time"] := A_Now
        
        ; 添加到隐藏列表
        HiddenWindows.Push(windowInfo)
        
        ; 隐藏窗口
        WinHide MouseWin
        
        ; 提示信息
        ToolTip("已隐藏: " WinTitle, A_ScreenWidth//2, 20)
        SetTimer () => ToolTip(), -2000 ; 2秒后消失
        
        SoundPlay("*-1", 1)
        
    } catch as e {
        SoundPlay("*16", 1)
        MsgBox "隐藏窗口失败: " e.Message
    }
}

; Alt + Shift + Q 显示所有被隐藏的窗口
!+q::
{
    global HiddenWindows ; 声明使用全局变量
    
    if (HiddenWindows.Length = 0) {
        ToolTip("没有隐藏的窗口", A_ScreenWidth//2, 20)
        SetTimer () => ToolTip(), -2000
        return
    }
    
    restored := 0
    DetectHiddenWindows true
    
    for window in HiddenWindows {
        try {
            WinShow window["id"]
            restored++
        }
    }
    
    ; 清空隐藏列表
    HiddenWindows := []
    DetectHiddenWindows false
    
    ToolTip("已恢复 " restored " 个窗口", A_ScreenWidth//2, 20)
    SetTimer () => ToolTip(), -2000
    SoundPlay("*-1", 1)
}

; 显示隐藏窗口列表
!+l::
{
    global HiddenWindows ; 声明使用全局变量
    
    if (HiddenWindows.Length = 0) {
        MsgBox "当前没有隐藏的窗口"
        return
    }
    
    list := "已隐藏的窗口:`n`n"
    for i, window in HiddenWindows {
        list .= i ". " window["title"] "`n"
    }
    
    MsgBox list
}

; 退出脚本
^!x::ExitApp