창을 쉽게 끄는 방법 (XP/2k/NT 이상)

보통, 창은 제목 바를 클릭해서 끌 수 있습니다. 이 스크립트는 창 안의 어느 지점에서든 끌 수 있도록 확장합니다. 이 모드를 활성화하려면, CapsLock 또는 가운데 버튼을 누르면서 클릭하면, 창을 새 위치까지 끌 수 있습니다.

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

; 주의: 선택적으로 계속 누르고 있을 필요 없이 
; 마우스 버튼을 누른 다음에 Capslock 또는 가운데 버튼을 떼도 됩니다
; 이 스크립트는 v1.0.25+를 요구합니다..

~MButton & LButton::
CapsLock & LButton::
CoordMode, Mouse  ; 화면/절대 좌표를 변환합니다.
MouseGetPos, EWD_MouseStartX, EWD_MouseStartY, EWD_MouseWin
WinGetPos, EWD_OriginalPosX, EWD_OriginalPosY,,, ahk_id %EWD_MouseWin%
WinGet, EWD_WinState, MinMax, ahk_id %EWD_MouseWin% 
if EWD_WinState = 0  ; 창이 최대화 되어 있지 않은 경우에만,
    SetTimer, EWD_WatchMouse, 10 ; 사용자가 마우스를 끄는 것을 추적합니다.
return

EWD_WatchMouse:
GetKeyState, EWD_LButtonState, LButton, P
if EWD_LButtonState = U  ; 버튼이 떼어졌습니다. 그래서 끌기가 완료 되었습니다.
{
    SetTimer, EWD_WatchMouse, off
    return
}
GetKeyState, EWD_EscapeState, Escape, P
if EWD_EscapeState = D  ; Escape이 눌렸습니다. 그래서 끌기가 취소 되었습니다.
{
    SetTimer, EWD_WatchMouse, off
    WinMove, ahk_id %EWD_MouseWin%,, %EWD_OriginalPosX%, %EWD_OriginalPosY%
    return
}
; 그렇지 않으면, 창을 다시 배치해
; 사용자가 마우스를 끌어 변경된 마우스 좌표를 반영합니다:
CoordMode, Mouse
MouseGetPos, EWD_MouseX, EWD_MouseY
WinGetPos, EWD_WinX, EWD_WinY,,, ahk_id %EWD_MouseWin%
SetWinDelay, -1   ; 아래를 더 부드럽게 더 빠르게 이동시킵니다.
WinMove, ahk_id %EWD_MouseWin%,, EWD_WinX + EWD_MouseX - EWD_MouseStartX, EWD_WinY + EWD_MouseY - EWD_MouseStartY
EWD_MouseStartX := EWD_MouseX  ; 이 서브루틴에 대한 다음 타이머 호출을 업데이트 합니다.
EWD_MouseStartY := EWD_MouseY
return
선택 | 내려받기