2018/09/16

180916 Autohotkeyでマウスカーソル移動(改変)

挙動がいまいちだったので、再度変更。
ChangeKeyをインストールし、CapsLockをF24に割り当て、修飾キーとして使用する。
CapsLock + 矢印キー、またはhjklでポインター移動(hjklは←↓↑→)。
Shift押しながらだとゆっくり移動、Ctrl押しながらだと1ピクセルずつ移動。
CapsLock + a で左クリック、CapsLock + s で右クリック。
CapsLock + m でアクティブなウィンドウの中央右寄りに移動。
CapsLock + u で上スクロール、CapsLock + d で下スクロール。

; Remap CapsLock key to F24 (0x0076) by executing ChangeKey as administrator
; Move pointer by F24 + arrow keys or hjkl
F24 & Up::
F24 & Down::
F24 & Left::
F24 & Right::
F24 & a::
F24 & h::
F24 & j::
F24 & k::
F24 & l::
If (GetKeyState("a", "P")) {
Send, {Blind}{LButton Down}
}
While (GetKeyState("F24", "P")) {
MoveX := 0, MoveY := 0
MoveY += GetKeyState("Up", "P") ? -25 : 0
MoveY += GetKeyState("Down", "P") ? 25 : 0
MoveX += GetKeyState("Left", "P") ? -25 : 0
MoveX += GetKeyState("Right", "P") ? 25 : 0
MoveY += GetKeyState("k", "P") ? -25 : 0
MoveY += GetKeyState("j", "P") ? 25 : 0
MoveX += GetKeyState("h", "P") ? -25 : 0
MoveX += GetKeyState("l", "P") ? 25 : 0
MoveY *= GetKeyState("Shift", "P") ? 0.2 : 1
MoveX *= GetKeyState("Shift", "P") ? 0.2 : 1
MoveY *= GetKeyState("LCtrl", "P") ? 0.04 : 1
MoveX *= GetKeyState("LCtrl", "P") ? 0.04 : 1
MouseMove, %MoveX%, %MoveY%, 0, R
}
Send, {LButton Up}
Return

; F 24 + s or F24 + AppsKey as right click
F24 & s::MouseClick, right
F24 & AppsKey::MouseClick, right

; Move pointer to the right of active window by F24 + m
F24 & m::
WinGetActiveStats, Title, Width, Height, X, Y
MouseMove, Width * 0.9, Height / 2, 0
Return

; Scroll by F24 + u/d
F24 & u::MouseClick, WheelUp, , , 3
F24 & d::MouseClick, WheelDown, , , 3

0 件のコメント:

コメントを投稿