ÀÌ ½ºÅ©¸³Æ®´Â ÈξÀ ´õ ½±°Ô âÀ» À̵¿Çϰųª Å©±â¸¦ º¯°æÇÒ ¼ö ÀÖµµ·Ï ¸¸µé¾î ÁÝ´Ï´Ù: 1) â ¾È ¾Æ¹«µ¥³ª ALT Ű¿Í LEFT-Ŭ¸¯À» ´©¸£°í âÀ» »õ À§Ä¡·Î ²ø ¼ö ÀÖ½À´Ï´Ù; 2) â ¾È ¾Æ¹« °÷À̳ª ALT¿Í RIGHT-Ŭ¸¯À¸·Î ²ø¾î¼ ½±°Ô Å©±â¸¦ º¯°æÇÒ ¼ö ÀÖ½À´Ï´Ù; 3) ALT¸¦ µÎ ¹ø, ±×·¯³ª µÎ ¹øÂ°¸¦ ³õ±â Àü¿¡, ¿ÞŬ¸¯ÇÏ¸é ¸¶¿ì½º Ä¿¼ ¾Æ·¡ÀÇ Ã¢À» ÃÖ¼ÒÈÇÏ°í ¿ìŬ¸¯Çϰųª ¶Ç´Â °¡¿îµ¥ Ŭ¸¯Çϸé âÀ» ´ÝÀ» ¼ö ÀÖ½À´Ï´Ù.
ÀÌ ½ºÅ©¸³Æ® ³»·Á¹Þ±â | ´Ù¸¥ »ùÇà ½ºÅ©¸³Æ® | ȨÀ¸·Î
; ÀÌ ½ºÅ©¸³Æ®´Â Æ÷·³¿¡ ÀÖ´Â ¸¹Àº ºÐµé·ÎºÎÅÍ
; ¿µ°¨À» ¾ò¾î ÀÛ¼ºµÇ¾ú½À´Ï´Ù. ÈǸ¢ÇÑ ÀÛǰÀ» °ø°³ÇØ ÁֽŠck, thinkstorm, Chris,
; ±×¸®°í aurelian¿¡°Ô °¨»çÀÇ ¸»¾¸À» ÀüÇÕ´Ï´Ù.
; º¯°æ ÀÌ·Â:
; November 07, 2006: !RButton¿¡¼ Å©±â Á¶Àý ÄÚµå ÃÖÀûÈ, bluedawn Á¦°ø.
; February 05, 2006: ´õºí-alt (~Alt ÇÖŰ)°¡ ÃֽйöÀüÀÇ AHK¿¡¼ ÀÛµ¿Çϵµ·Ï ¼öÁ¤.
; ´õºíD-Alt ¼ö½ÄŰ´Â ¾ËÆ® ۸¦ µÎ ¹ø ´©¸£¸é Ȱ¼ºÈ µË´Ï´Ù.
; ´õºí Ŭ¸¯°ú ¸¹ÀÌ ´à¾Ò½À´Ï´Ù.
; µÎ ¹øÂ° ¾ËÆ® Ű´Â Ŭ¸¯ÇÒ ¶§±îÁö ´©¸£°í °è½Ê½Ã¿À.
;
; ´ÜÃàŰ:
; Alt + Left Button : ²ø¾î âÀ» À̵¿.
; Alt + Right Button : ²ø¾î â Å©±â¸¦ º¯°æ.
; Double-Alt + Left Button : â ÃÖ¼ÒÈ.
; Double-Alt + Right Button : â ÃÖ´ëÈ/º¹±¸.
; Double-Alt + Middle Button : ⠴ݱâ.
;
; ¼±ÅÃÀûÀ¸·Î ù ¹øÂ° Ŭ¸¯ ´ÙÀ½¿¡ ¾ËÆ® ۸¦ ³õÀ» ¼ö ÀÖ½À´Ï´Ù.
; °è¼Ó ´©¸£°í ÀÖÀ» Çʿ䰡 ¾ø½À´Ï´Ù.
If (A_AhkVersion < "1.0.39.00")
{
MsgBox,20,,ÀÌ ½ºÅ©¸³Æ®´Â ÇöÀçÀÇ ¿ÀÅäÇÖŰ ¹öÀü¿¡¼ Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾ÊÀ» °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. °è¼ÓÇÒ±î¿ä?
IfMsgBox,No
ExitApp
}
; ´ÙÀ½Àº ÇÊÀÚÀÇ ½Ã½ºÅÛ¿¡¼ °¡Àå ºÎµå·´°Ô ÀÛµ¿ÇÏ´Â ¼³Á¤ÀÔ´Ï´Ù
; ¿©·¯ºÐÀÇ ºñµð¿À Ä«µå¿Í ½ÃÇÇÀ¯ ¼º´É¿¡ µû¶ó
; ÀÌ °ªÀ» ¿Ã¸®°Å³ª ³»¸®¸é µË´Ï´Ù.
SetWinDelay,2
CoordMode,Mouse
return
!LButton::
If DoubleAlt
{
MouseGetPos,,,KDE_id
; ÀÌ ¸Þ½ÃÁö´Â °ÅÀÇ WinMinimize¿Í µ¿µîÇÏÁö¸¸,
; PSPadÀÇ ¹ö±×¸¦ ÇÇÇÕ´Ï´Ù.
PostMessage,0x112,0xf020,,,ahk_id %KDE_id%
DoubleAlt := false
return
}
; ÃÖÃÊÀÇ ¸¶¿ì½º À§Ä¡¿Í â ¾ÆÀ̵𸦠¾ò½À´Ï´Ù.
; âÀÌ ÃÖ´ëȵǾî ÀÖ´Ù¸é Ãë¼ÒÇÕ´Ï´Ù.
MouseGetPos,KDE_X1,KDE_Y1,KDE_id
WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
If KDE_Win
return
; ÃÖÃÊÀÇ Ã¢ À§Ä¡¸¦ ¾ò½À´Ï´Ù.
WinGetPos,KDE_WinX1,KDE_WinY1,,,ahk_id %KDE_id%
Loop
{
GetKeyState,KDE_Button,LButton,P ; ¹öưÀ» ³õ¾Ò´Ù¸é ºüÁ® ³ª°©´Ï´Ù.
If KDE_Button = U
break
MouseGetPos,KDE_X2,KDE_Y2 ; ÇöÀç ¸¶¿ì½º À§Ä¡¸¦ ¾ò½À´Ï´Ù.
KDE_X2 -= KDE_X1 ; ÃÖÃÊ ¸¶¿ì½º À§Ä¡·ÎºÎÅÍ »ó´ë°Å¸®(offset)¸¦ ¾ò½À´Ï´Ù.
KDE_Y2 -= KDE_Y1
KDE_WinX2 := (KDE_WinX1 + KDE_X2) ; ÀÌ »ó´ë°Å¸®¸¦ âÀ§ À§Ä¡¿¡ Àû¿ëÇÕ´Ï´Ù.
KDE_WinY2 := (KDE_WinY1 + KDE_Y2)
WinMove,ahk_id %KDE_id%,,%KDE_WinX2%,%KDE_WinY2% ; âÀ» »õ À§Ä¡·Î À̵¿½Ãŵ´Ï´Ù.
}
return
!RButton::
If DoubleAlt
{
MouseGetPos,,,KDE_id
; ÃÖ´ëÈ »óÅÂ¿Í º¹±¸ »óÅ »çÀ̸¦ Åä±ÛÇÕ´Ï´Ù.
WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
If KDE_Win
WinRestore,ahk_id %KDE_id%
Else
WinMaximize,ahk_id %KDE_id%
DoubleAlt := false
return
}
; ÃÖÃÊ ¸¶¿ì½º À§Ä¡¿Í â ¾ÆÀ̵𸦠¾ò½À´Ï´Ù.
; âÀÌ ÃÖ´ëÈ µÇ¾î ÀÖ´Ù¸é Ãë¼ÒÇÕ´Ï´Ù.
MouseGetPos,KDE_X1,KDE_Y1,KDE_id
WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
If KDE_Win
return
; ÃÖÃÊ Ã¢ÀÇ À§Ä¡¿Í Å©±â¸¦ ¾ò½À´Ï´Ù.
WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id%
; ÇöÀç ¸¶¿ì½º°¡ Àִ â ±¸¿ªÀ» Á¤ÀÇÇÕ´Ï´Ù.
; ³× ±¸¿ªÀº Á»ó, ¿ì»ó, ÁÂÇÏ, ¿ìÇÏÀÔ´Ï´Ù.
If (KDE_X1 < KDE_WinX1 + KDE_WinW / 2)
KDE_WinLeft := 1
Else
KDE_WinLeft := -1
If (KDE_Y1 < KDE_WinY1 + KDE_WinH / 2)
KDE_WinUp := 1
Else
KDE_WinUp := -1
Loop
{
GetKeyState,KDE_Button,RButton,P ; ¹öưÀÌ ´·Á ÀÖÀ¸¸é ºüÁ® ³ª°©´Ï´Ù.
If KDE_Button = U
break
MouseGetPos,KDE_X2,KDE_Y2 ; ÇöÀç ¸¶¿ì½º À§Ä¡¸¦ ¾ò½À´Ï´Ù.
; ÇöÀç âÀÇ À§Ä¡¿Í Å©±â¸¦ ¾ò½À´Ï´Ù.
WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id%
KDE_X2 -= KDE_X1 ; ÃÖÃÊ ¸¶¿ì½º À§Ä¡·ÎºÎÅÍ »ó´ë°Å¸®(offset)¸¦ ¾ò½À´Ï´Ù.
KDE_Y2 -= KDE_Y1
; ÀÌÁ¦, Á¤ÀÇµÈ ±¸¿ª¿¡ ¸Â°Ô ÇàÀ§ÇÕ´Ï´Ù.
WinMove,ahk_id %KDE_id%,, KDE_WinX1 + (KDE_WinLeft+1)/2*KDE_X2 ; Å©±â º¯°æµÈ âÀÇ X
, KDE_WinY1 + (KDE_WinUp+1)/2*KDE_Y2 ; Å©±â º¯°æµÈ âÀÇ Y
, KDE_WinW - KDE_WinLeft *KDE_X2 ; Å©±â º¯°æµÈ âÀÇ W
, KDE_WinH - KDE_WinUp *KDE_Y2 ; Å©±â º¯°æµÈ âÀÇ H
KDE_X1 := (KDE_X2 + KDE_X1) ; ´ÙÀ½ ¹Ýº¹À» À§ÇØ ÃÖÃÊ À§Ä¡·Î ¸®¼ÂÇÕ´Ï´Ù.
KDE_Y1 := (KDE_Y2 + KDE_Y1)
}
return
; "Alt + MButton"ÀÌ ´õ °£´ÜÇÒ ¼ö ÀÖÁö¸¸,
; ÇÊÀÚ´Â ´ÙÀ½°ú °°ÀÌ ¿¬»ê¿¡
; º¸¾ÈÀ» Ãß°¡ÇÏ´Â °ÍÀ» ÁÁ¾ÆÇÕ´Ï´Ù.
!MButton::
If DoubleAlt
{
MouseGetPos,,,KDE_id
WinClose,ahk_id %KDE_id%
DoubleAlt := false
return
}
return
; ´ÙÀ½Àº ¾ËÆ® ŰÀÇ "´õºí-Ŭ¸¯"À» ŽÁöÇÕ´Ï´Ù.
~Alt::
DoubleAlt := A_PriorHotKey = "~Alt" AND A_TimeSincePriorHotkey < 400
Sleep 0
KeyWait Alt ; ÀÌ·¸°Ô Çϸé Űº¸µåÀÇ ÀÚµ¿ ¹Ýº¹ Ư¡ ¶§¹®¿¡ ¹æÇØ ¹ÞÁö ¾Ê½À´Ï´Ù.
return