【AutoHotkey】マウスホイール連続入力で自動スクロールを設定した
はじめに
先日よりAutoHotkeyを使ってPCの操作改善を図っている。
今回の記事はマウスホイールを2連続で下に動かせば自動スクロールに切り替わる方法を書き記す。
AutoHotkeyとはなんぞやについては前記事に書いたので参照してほしい。
課題
マウスホイールでページを下にスクロールする時、たいてい連続して入力している。そして読みたいところで止める。
この中指、休ませることができるんでは?
と究極のめんどくさがりは思った。
そしてコードができた。
想定読者
AutoHotkeyを触ったことがあり、ソフト実行までの流れがわかっている人。
AutoHotkey初心者の方は前記事へどうぞ。
コード
結論から。AutoHotkey.ahkに書き込んだコードはこちら。
#Persistent
#SingleInstance, Force
#NoEnv
#UseHook
#InstallKeybdHook
#InstallMouseHook
#HotkeyInterval, 2000
#MaxHotkeysPerInterval, 200
Process, Priority,, Realtime
SendMode, Input
SetWorkingDir %A_ScriptDir%
SetTitleMatchMode, 2
Return
; スクロールの監視用変数
scrollCount := 0
scrollTimer := 0
autoScrolling := false
; 自動スクロールの速度(ミリ秒)
scrollSpeed := 100
; WheelDown処理
WheelDown::
; 短い期間で10回連続でスクロールされた場合の処理
if (A_TimeSincePriorHotkey < 500) {
scrollCount++
} else {
scrollCount := 1
}
; 短い期間で10回連続でスクロールされた場合の処理
if (scrollCount < 10) {
Send {WheelDown}
} else if (scrollCount = 10) {
SetTimer, AutoScroll, %scrollSpeed%
autoScrolling := true
}
return
; 自動スクロール
AutoScroll:
; スクロール動作
Send {WheelDown}
return
; クリックによる自動スクロールの停止
~LButton::
SetTimer, AutoScroll, Off
autoScrolling := false
return
; 上スクロールが入力されたときの停止
WheelUp::
if (!autoScrolling) {
Send {WheelUp}
} else {
SetTimer, AutoScroll, Off
autoScrolling := false
}
return
発火条件:下スクロールを0.5秒以内に10回以上入力
10回以上としたのは所有マウスのホイールを一回下に動かしたときに5判定ほど取られているため。二回素早く下に向かって中指を動かせば、発火条件を満たすようにした。環境によって値調整必要。
自動スクロールの停止条件:上スクロールまたは左クリック
あえて下スクロールの追加入力は対象外にした。
自動スクロール中に読み飛ばしたい時用だ。
まとめ
以上のコードでAutoHotkeyというソフトを使い、マウスホイール連続入力で自動スクロールを設定できた。
この記事が気に入ったらサポートをしてみませんか?