这段代码实现了一个通过鼠标键+左键组合操作来卷起或展开窗口的功能(类似于某些窗口管理工具中“隐藏窗口内容,仅显示标题栏”的功能)。

 

; 【使用方法】窗口标题栏上按住鼠标左键后,再按右键即可卷起窗口

; 在此处设置卷起窗口的高度。操作系统
; 无论如何,可能不会允许标题栏隐藏
; 这个数字的低程度如何
ws_MinHeight = 25
 
; 如果脚本退出,这条行将展开任何卷起的窗口
; 出于任何原因
OnExit, ExitSub
Return   ; 自动执行部分结束
 
; 下面,除非您想要,否则不会进行任何更改
; 更改脚本的基本功能。
; 如果要转换此子程序,则取消注释下一行
; 进入自定义菜单项而不是热键。延迟允许
; 通过显示的菜单取消激活的活动窗口
; 再次变得活跃
#if GetKeyState("LButton", "P")
RButton::
WinGet, ws_ID, ID, A
Loop, Parse, ws_IDList, |
{
    IfEqual, A_LoopField, %ws_ID%
    {
       ; 找到匹配,因此应恢复此窗口(展开)
        StringTrimRight, ws_Height, ws_Window%ws_ID%, 0
        WinMove, ahk_id %ws_ID%,,,,, %ws_Height%
        StringReplace, ws_IDList, ws_IDList, |%ws_ID%
        Return
    }
}
; 找到匹配,因此应卷起此窗口(卷起)
WinGetPos,,,, ws_Height, A
ws_Window%ws_ID% = %ws_Height%
WinMove, ahk_id %ws_ID%,,,,, %ws_MinHeight%
ws_IDList = %ws_IDList%|%ws_ID%
Return
 
ExitSub:
Loop, Parse, ws_IDList, |
{
    if A_LoopField =   ; 列表中的第一个字段通常是空白的。
        Continue      ; 所以跳过它。
    StringTrimRight, ws_Height, ws_Window%A_LoopField%, 0
    WinMove, ahk_id %A_LoopField%,,,,, %ws_Height%
}
ExitApp  ; 必须为单个子程序执行此操作,以实际退出脚本。

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。