[AHK]Alt+WheelUpとAlt+WheelDownをトリガーにするとCtrlが押される。

AutoHotkeyで、Altを押しながら、WheelUp/WheelDownすると、複数回スクロールされるように設定した。

!WheelUp::Send, {WheelUp 7}
!WheelDown::Send, {WheelDown 7}

これで、快適に使うつもりだったが、ブラウザでごりごりスクロールしてると、LControlがUp/Downすることがあった。これをされると、ブラウザの画面が拡大縮小されるので非常に煩わしい。
以前のファンクションキーだけじゃなく、もしかしてこれもか、、、と思いつつ確認

[AHK]Ctrlは操作してないのに、LControlが押し離しされる。

下記の様なコードを書いてテスト。
!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の発生があり得るので。

多分こんな感じじゃ???(uとdが同時の時はuが優先だとするなら。)

取り合えず、ファンクションキーの時の上手くいった、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}

問題は、今回みたいに入力キーが出力されて問題ないケースしか使えない。。。

他のコマンドに置き換えれないのは痛いな。。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です