AutoHotkeyで、Altを押しながら、WheelUp/WheelDownすると、複数回スクロールされるように設定した。
!WheelUp::Send, {WheelUp 7} !WheelDown::Send, {WheelDown 7}
これで、快適に使うつもりだったが、ブラウザでごりごりスクロールしてると、LControlがUp/Downすることがあった。これをされると、ブラウザの画面が拡大縮小されるので非常に煩わしい。
以前のファンクションキーだけじゃなく、もしかしてこれもか、、、と思いつつ確認
下記の様なコードを書いてテスト。
!WheelDown::return
はいHit。
A4 038 d 0.38 LAlt 9E 001 h d 0.23 WheelDown A4 038 u 0.27 LAlt A2 01D i d 0.00 LControl LCtrlが発生 A2 01D i u 0.00 LControl
Ctrlは全く操作してないのに、LControlが出力されてます。
ログだけ見ると、CtrlがWheelDownに影響しないタイミングで押し離しされていますが、Chromeの画面が拡大縮小されることから、間違いなく、Ctrl+WheelUpとなる状況が発生していると考えられます。
もしかすると、ログは1つ目のキー要求処理中に他のキー要求処理が始まった場合、発生したイベント毎にログに反映してるのかもしれません。
Alt+WheelUPを連打した時、最初の処理が終わる前に次のAlt+WheelUpが来ると、Ctrl+WheelUpの発生があり得るので。
取り合えず、ファンクションキーの時の上手くいった、BlindでUp処理を試してみました。
!WheelDown::Send, {Blind}{LAlt Up}
結果としては、ダメでした。。。
A4 038 d 0.47 LAlt 9F 001 h d 0.25 WheelDown A4 038 i u 0.00 LAlt A2 01D i d 0.00 LControl LCtrlが発生 A2 01D i u 0.00 LControl A4 038 d 0.27 LAlt
その後色々試すと、どうもAlt+WheelUpとAlt+WheelDownのreturnでCtrlが出力されているようです。
そのため、下記のように、「~」とsendに「{blind}」を付けてパススルーするようにするといけました。
~!WheelDown::return ;いけた A4 038 d 0.42 LAlt 9E 001 h d 0.30 WheelDown A4 038 d 0.20 LAlt A4 038 d 0.03 LAlt A4 038 d 0.03 LAlt A4 038 u 0.02 LAlt ~!WheelDown::send,{blind}{WheelUp} ;いけた A4 038 d 0.49 LAlt 9E 001 h d 0.30 WheelDown 9F 001 i d 0.00 WheelUp A4 038 d 0.20 LAlt A4 038 u 0.01 LAlt
一先ず下記のように書くと、Ctrlの発生なく使えるようになりました。
~!WheelDown::send,{Blind}{WheelDown 6} ~!WheelUp::send,{Blind}{WheelUp 6}
問題は、今回みたいに入力キーが出力されて問題ないケースしか使えない。。。
他のコマンドに置き換えれないのは痛いな。。。
コメント