Window Shading (창을 제목 바까지 말아 올리기) -- by Rajat

이 스크립트는 창을 제목 바까지 말아 올리고 핫키를 누르면 다시 원래 크기로 돌아옵니다. 창의 개수에 상관없이 이런 식으로 줄일 수 있습니다 (스크립트가 각각 기억합니다). 스크립트가 어떤 이유로 종료하면 "말려 올라간" 모든 창이 자동으로 원래 높이로 복구됩니다.

이 스크립트 내려받기  |  다른 샘플 스크립트  |  홈으로

; 말린 창의 높이를 여기에서 설정합니다.
; 아마도 이 숫자가 얼마나 낮은가에 상관 없이 운영체제는 
; 제목바가 숨는 것을 허용하지 않을 것입니다:
ws_MinHeight = 25

; 이 줄은 어떤 이유로 스크립트가 종료하면
; 말려 올라간 창을 복구합니다:
OnExit, ExitSub
return  ; 자동 실행 섹션의 끝

#z::  ; 이 줄을 바꿔 다른 핫키를 골라도 됩니다.
; 이 시점 이후로, 어떤 변경도 허용하지 않습니다
; 단, 스크립트의 기본 기능을 변경하고 싶은 경우는 예외입니다.
; 다음 줄을 주석 해제하면 이 서브루틴을 핫키가 아니라
; 맞춤 메뉴 항목으로 변환할 수 있습니다.  
; 지연 시간 덕분에 메뉴 때문에 꺼졌던
; 활성 창은 다시 켜집니다:
;Sleep, 200
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  ; OnExit 서브루틴에 대하여 반드시 이렇게 해야만 스크립트를 실제로 종료할 수 있습니다.
선택 | 내려받기