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 ¼­ºê·çƾ¿¡ ´ëÇÏ¿© ¹Ýµå½Ã ÀÌ·¸°Ô Çؾ߸¸ ½ºÅ©¸³Æ®¸¦ ½ÇÁ¦·Î Á¾·áÇÒ ¼ö ÀÖ½À´Ï´Ù.