キーボードでウィンドウを移動させる

キーボードでウィンドウを移動させる

Shift+Win+上下左右でアクティブウィンドウを動かすAHKスクリプト

滅多に使うもんでもないが、たまに役に立つ。Windows標準のAlt+Space→Mでもできるけど、とりあえずこっちの方が移動量を多くできるし、早い。

#Left::WinMove(-50,0)	; X方向に-50px、Y方向に0px移動
#Right::WinMove(50,0)	; X方向に+50px、Y方向に0px移動
#Up::WinMove(0,-50)	; X方向に0px、Y方向に-50px移動
#Down::WinMove(0,50)	; X方向に0px、Y方向に+50px移動
WinMove(MoveX, MoveY) {
  WinGetPos, X, Y, , , A
  X += MoveX
  Y += MoveY
  WinMove, A, , %X%, %Y%
}

これだと画面の枠からはみ出たりもするので、移動を画面内にとどめたい場合は、関数部分を以下のように書き換える。

WinMove(MoveX, MoveY) {
  SysGet, WorkArea, MonitorWorkArea
  WinGetPos, X, Y, W, H, A
  X += MoveX
  Y += MoveY
  X := (X < 0) ? 0 : X
  X := (X + W > WorkAreaRight) ? WorkAreaRight - W : X
  Y := (Y < 0) ? 0 : Y
  Y := (Y + H > WorkAreaBottom) ? WorkAreaBottom - H : Y
  WinMove, A, , %X%, %Y%
}