## 事象
[[AutoHotkey]]で `Ctrl` `Shift` `Alt` などの[[修飾キー]]が押しっぱなしになる問題。もう一度その[[修飾キー]]を押すとなおるが、気付かずに操作を続けてしまうのでストレスが溜まる。
## 原因
[[Send系コマンド]]で[[修飾キー]]を指定したとき、[[修飾キー]]に対するDownとUpのイベントがそれぞれ起こる。Downイベントが発生してからUpイベントが発生するまでの間に、該当の物理キーがキーボードから離されると、Upイベントが発生せず、その後ずっと押しっぱなしと判定されるから (たぶん)
## 解決策
### `😄F13`~`F24`キーを使う
ツールのキーバインドに[[修飾キー]]を割り当てして、それを[[AutoHotkey]]経由で呼び出している場合は、代わりに`F13`~`F24`キーを使えばいい。
[[修飾キー]]を使っていないため、これらで実行されるコマンドで問題は発生しない。[[AutoHotkey]]でリマップするキーバインドはその性質上、同時押し数が増える傾向にある(`Ctrl+Shift+Alt+A`など)ため一番効果的。
### 🤔[[Sleep]]を挟む
`Sleep, 2`とかだけでも効果があるとのこと。`F13`~`F24`が使えない場合は試してみたい。
[快適キーボード操作のためのキーカスタマイズ 〜AutoHotKeyのキー押しっぱなし問題とScrollLockの非推奨~ | さくらのナレッジ](https://knowledge.sakura.ad.jp/25827/#F13F24)
### 😢[[SendInput]]を使う
よく出てくる回避策。すでに使っているので却下。([[Send]]と比較すると[[SendInput]]の方が発生する頻度はかなり低い)
### 😢 AutoHotkey causing control key to get stuck
https://stackoverflow.com/questions/49009176/autohotkey-causing-control-key-to-get-stuck
この解決方法が気になる。。
```autohotkey
;; Avoid Ctrl getting stuck in down state, even when not physically pressed:
#MenuMaskKey vkFF
```
https://www.autohotkey.com/docs/commands/_MenuMaskKey.htm
効果無し。
## 参考
[快適キーボード操作のためのキーカスタマイズ 〜AutoHotKeyのキー押しっぱなし問題とScrollLockの非推奨~ | さくらのナレッジ](https://knowledge.sakura.ad.jp/25827/#F13F24)