오토핫키로 만들어서 참 유용하게 쓰고 있었는데, 비슷한 프로그램들이 아래 올라왔군요.
오토핫키 쓰시는 분들 참고하시라고 소스와 함께 실행파일 첨부합니다.
제껀 Ctrl+숫자키패드 조합이구요, 소스가 있으니 입맛대로 고쳐 쓰실 수 있습니다.
창간 전환과 최대화/복원 기능은 울트라몬의 핫키를 쓰고 있어서 뺐습니다.

Gutter      = 4
;##################################################################################################

GetMonArea(ByRef Left, ByRef Right, ByRef Top, ByRef Bottom)
{
    WinGetPos, WindowLeft, , WindowWidth, , A
    WindowCenter := WindowLeft + WindowWidth/2

    AreaFound = 0

    SysGet, MonitorCount, MonitorCount

    Loop %MonitorCount%
    {
        SysGet, Monitor, MonitorWorkArea, %A_Index%

        if WindowCenter between %MonitorLeft% and %MonitorRight%
        {
            AreaFound = 1

            Left    := MonitorLeft
            Right   := MonitorRight
            Top     := MonitorTop
            Bottom  := MonitorBottom

            break
        }
    }
   
    if AreaFound != 1
    {
        SysGet, Monitor, MonitorWorkArea, 1     ; primary monitor
       
        Left    := MonitorLeft
        Right   := MonitorRight
        Top     := MonitorTop
        Bottom  := MonitorBottom
    }
}

;##################################################################################################

; Bottom Left
^NumPad1::
GetMonArea(AreaLeft, AreaRight, AreaTop, AreaBottom)
WinGetActiveTitle, Title
WinRestore, %Title%
WinMove, %Title%, , AreaLeft-Gutter, (AreaTop+AreaBottom)/2-Gutter, (AreaRight-AreaLeft)/2+Gutter*2, (AreaBottom-AreaTop)/2+Gutter*2
return

; Bottom
^NumPad2::
GetMonArea(AreaLeft, AreaRight, AreaTop, AreaBottom)
WinGetActiveTitle, Title
WinRestore, %Title%
WinMove, %Title%, , AreaLeft-Gutter, (AreaTop+AreaBottom)/2-Gutter, AreaRight-AreaLeft+Gutter*2, (AreaBottom-AreaTop)/2+Gutter*2
return

; Bottom Right
^NumPad3::
GetMonArea(AreaLeft, AreaRight, AreaTop, AreaBottom)
WinGetActiveTitle, Title
WinRestore, %Title%
WinMove, %Title%, , (AreaRight+AreaLeft)/2-Gutter, (AreaTop+AreaBottom)/2-Gutter, (AreaRight-AreaLeft)/2+Gutter*2, (AreaBottom-AreaTop)/2+Gutter*2
return

; Left
^NumPad4::
GetMonArea(AreaLeft, AreaRight, AreaTop, AreaBottom)
WinGetActiveTitle, Title
WinRestore, %Title%
WinMove, %Title%, , AreaLeft-Gutter, AreaTop-Gutter, (AreaRight-AreaLeft)/2+Gutter*2, AreaBottom-AreaTop+Gutter*2
return

; Center
^NumPad5::
GetMonArea(AreaLeft, AreaRight, AreaTop, AreaBottom)
WinGetActiveTitle, Title
WinRestore, %Title%
WinMove, %Title%, , AreaLeft+(AreaRight-AreaLeft)/16, AreaTop+(AreaBottom-AreaTop)/16, (AreaRight-AreaLeft)-(AreaRight-AreaLeft)/8, (AreaBottom-AreaTop)-(AreaBottom-AreaTop)/8
return

; Right
^NumPad6::
GetMonArea(AreaLeft, AreaRight, AreaTop, AreaBottom)
WinGetActiveTitle, Title
WinRestore, %Title%
WinMove, %Title%, , (AreaRight+AreaLeft)/2-Gutter, AreaTop-Gutter, (AreaRight-AreaLeft)/2+Gutter*2, AreaBottom-AreaTop+Gutter*2
return

; Top Left
^NumPad7::
GetMonArea(AreaLeft, AreaRight, AreaTop, AreaBottom)
WinGetActiveTitle, Title
WinRestore, %Title%
WinMove, %Title%, , AreaLeft-Gutter, AreaTop-Gutter, (AreaRight-AreaLeft)/2+Gutter*2, (AreaBottom-AreaTop)/2+Gutter*2
return

; Top
^NumPad8::
GetMonArea(AreaLeft, AreaRight, AreaTop, AreaBottom)
WinGetActiveTitle, Title
WinRestore, %Title%
WinMove, %Title%, , AreaLeft-Gutter, AreaTop-Gutter, AreaRight-AreaLeft+Gutter*2, (AreaBottom-AreaTop)/2+Gutter*2
return

; Top Right
^NumPad9::
GetMonArea(AreaLeft, AreaRight, AreaTop, AreaBottom)
WinGetActiveTitle, Title
WinRestore, %Title%
WinMove, %Title%, , (AreaRight+AreaLeft)/2-Gutter, AreaTop-Gutter, (AreaRight-AreaLeft)/2+Gutter*2, (AreaBottom-AreaTop)/2+Gutter*2
return


 

* Sad Nova™에 의해 카테고리가 수정되었습니다. (2009/5/22 12:58)