2018/09/11

180911 Autohotkeyでポインター移動(改変)

Autohotkeyでマウスカーソルを移動するスクリプトの使い勝手がいまいちだったので改変した。
CapsLock/英数キーを使っていない、というか邪魔なので、ChangeKeyをインストールしてキーを置き換え。

キー操作環境を改善しよう:AutoHotKeyとChangeKeyの活用 - TECHS LIFE
https://freelifetech.com/improve-key-control/

自分の使っているキーボードにはCtrlキーが左下に1個しかないので、CapsLockを右Ctrlに変更。
AutoHotKeyでLCtrlやRCtrlで左右のCtrlキーを区別して指定できる。
下記を参考にスクリプト作成した。

手の移動距離を減らすためのAutoHotKeyスクリプト · GitHub
https://gist.github.com/toriwasa/64fc9e1a8cce620b8ff92f0ae38075f7

CapsLock押しながら矢印キーまたはhjklキーで上下左右に移動。
ShiftとCtrlを押すと移動距離がそれぞれ5倍と20倍に荒くなる。
hjklはvim同様に←↓↑→に対応して、uで↑、nで↓に大幅移動(vimはctrl+uで上に半ページ送り、下に半ページ送りはnでなくctrl+dだが…)。

右Ctrlを使っている場合は下記を参考にF24とか適当なキーを割り当てて、スクリプトのRCtrlをF24に置換する。

ChangeKeyを使用してWindowsキーをF13キーに変更する方法 - 情報科学屋さんを目指す人のメモ(FC2ブログ版)
did2.blog64.fc2.com/blog-entry-349.html

; RCtrl + a で左クリック、RCtrl + s または RCtrl + AppsKey で右クリック
RCtrl & a::MouseClick,left,,,,,D
RCtrl & a Up::MouseClick,left,,,,,U
RCtrl & s::MouseClick, right
RCtrl & AppsKey::MouseClick, right

; RCtrlキーと矢印キー、hjklでマウスカーソルを移動
RCtrl & Up::
RCtrl & Down::
RCtrl & Left::
RCtrl & Right::
RCtrl & h::
RCtrl & j::
RCtrl & k::
RCtrl & l::
RCtrl & u::
RCtrl & n::
While (GetKeyState("RCtrl", "P"))
{
MoveX := 0, MoveY := 0
MoveY += GetKeyState("Up", "P") ? -5 : 0 ; ↑キーが押されたら5ピクセル移動
MoveY += GetKeyState("Down", "P") ? 5 : 0 ; 以下同様
MoveX += GetKeyState("Left", "P") ? -5 : 0
MoveX += GetKeyState("Right", "P") ? 5 : 0
MoveY += GetKeyState("k", "P") ? -5 : 0
MoveY += GetKeyState("j", "P") ? 5 : 0
MoveX += GetKeyState("h", "P") ? -5 : 0
MoveX += GetKeyState("l", "P") ? 5 : 0
MoveY += GetKeyState("u", "P") ? -50 : 0
MoveY += GetKeyState("n", "P") ? 50 : 0
MoveY *= GetKeyState("Shift", "P") ? 5 : 1 ; Shiftキーと同時押しで5倍(25ピクセル)移動
MoveX *= GetKeyState("Shift", "P") ? 5 : 1
MoveY *= GetKeyState("LCtrl", "P") ? 20 : 1 ; LCtrlキーと同時押しで20倍(100ピクセル)移動
MoveX *= GetKeyState("LCtrl", "P") ? 20 : 1 ; Shift+LCtrl同時押しで100倍(500ピクセル)移動
MouseMove, %MoveX%, %MoveY%, 0, R
Sleep, 0
}
Return

0 件のコメント:

コメントを投稿