2011年8月31日水曜日

Autohotkey:アクティブウィンドウを格子に区切って交点上にマウス移動

キーボードから手を離さずマウスを移動したい時に、
目的の部分一気に近ずくため使用しています。

上から一段目が始まるのでテンキーなどに設定する場合は
少しややこしいかもしれない。

下記の場合4*4で作成される交点は、
縦*4、横*4の計8点で線が交わる場所にマウスカーソルを移動させる。
ウィンドウ内のみに移動したい場合は、1から3まで、
0と4は枠線上を移動することになるのであまり使用する意味が無い。

;作成する交点
Hs:=4 ;縦の交点数
Ws:=4 ;横の交点数
;MMG(移動したい横の交点, 移動したい縦の交点, Hs, Ws)
!Numpad1::MMG(1,3,Hs,Ws)
!Numpad2::MMG(2,3,Hs,Ws)
!Numpad3::MMG(3,3,Hs,Ws)
!Numpad4::MMG(1,2,Hs,Ws)
!Numpad5::MMG(2,2,Hs,Ws)
!Numpad6::MMG(3,2,Hs,Ws)
!Numpad7::MMG(1,1,Hs,Ws)
!Numpad8::MMG(2,1,Hs,Ws)
!Numpad9::MMG(3,1,Hs,Ws)

MMG(x,y, Hs, Ws){
WinGetPos, , , w, h, A
intersection_x:=(w/Ws)*x
intersection_y:=(h/Hs)*y
CoordMode, Mouse, Relative
MouseMove, intersection_x, intersection_y
}


2011年8月30日火曜日

Autohotkey:キーを押している間コマンドを繰り返す

複数のキーを組み合わせて使用したい場合

b::
Loop
{
if !GetKeyState("b", "P")
break

   ;キー設定
   Send,{blind}{b}
Sleep,25
Send,{Blind}{Up Down}
Sleep,25
Send,{Blind}{Up Up}
Sleep,1
}
return


一つのキーのみを繰り返し入力したい場合

b::
Send,{b}
Sleep,10
return