2024.02.24更新
AutoHotKeyとは
![](http://socialunrestinvestor.com/wp-content/uploads/2023/05/pc_oparation2.jpg)
AutoHotKeyは、通常割り当てられているキーボードのタイピングを変更するアプリケーションです。
通常割り当てられているキーボードのタイピングを変更するとは、例えば「a」キーを押したら「z」キーの入力がされるようにするという意味です。
他にもマウスの自動操作や、アプリケーションをボタンで起動させるランチャーなどの設定もできます。
ただし設定するためには、このアプリケーション独特のスクリプト言語というものをマスターしないといけません。
AutoHotKeyの導入手順については、以下を参照ください。
ここではWindows11を使う前提で、解説していきます。
Windows10以前と、Windows11でアプリケーションの挙動が異なるためです。
Windows10とWindows11で挙動が異なる
![](http://socialunrestinvestor.com/wp-content/uploads/2022/11/kotetsuPAR584612052_TP_V4.jpg)
AutoHotKeyはWindows10までは、以下のスクリプトでキー操作の入れ替えができていました。
例はF3キーにCtrl+C(コピー)を割り当てるものです。
F3::^c
それがWindows11では動かなくなっています。
対策を試みるため、Googleで検索をしたところSendInput命令を適用することで代用できることを知りました。
例えば上記と同様にF3キーにCtrl+Cキーを割り当てるには、Windows11に関していえば以下のスクリプトに書き換えないと使えません。
F3::SendInput, ^c
ちなみにChatGPTに同様の質問をしたところ、以下のスクリプトも追加するように例を出されました。
SetWorkingDelay, 0 ;キー入力の遅延を設定
これをいれても動作はするので、安全性のため上記SetWorkingDelayをSendInputよりも前に書きました。
具体的にはスクリプトを書き込む最初のほうにSetWorkingDelay命令を1回だけ書き、後はキーの設定スクリプトを順次書き込むことをしています。
またF2キーにペースト(Ctrl+V)、F5キーに旧F2キーの役割を割り当てようとしたところ、F2キーの操作がF5キーに干渉してきて使い物になりません。
これはWindows10ではできていたことです。
構文は以下になります。
F5::SendInput, {F2}
F2::SendInput, ^v
順番を入れ替えてもだめでした。
どうも以下のキーはWindows11ではうまくキーマッピングできません。
- ファンクションキー(1~12)
- 半角/全角
- カタカナ/ひらがな
- CapsLock
このあたりはOSの仕様の関係上、うまく設定できないようです。
対策
![](http://socialunrestinvestor.com/wp-content/uploads/2023/05/desktopkeyboard03.jpg)
上記で述べたとおりSendInput命令を適用することで、Windows11でもWindows10と同様の動作をすることを確認しました。
※上記問題について少し古い記事ですが以下のものを発見しました。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZ0eHQ9QXV0b0hvdEtleSUyMCVFMyU4MSVBNyVFNiVBRCVBMyVFNSVCOCVCOCVFMyU4MSVBQiVFNiU4OSVCMSVFMyU4MSU4OCVFMyU4MSVBQSVFMyU4MSU4NCVFMyU4MiVBRCVFMyU4MyVCQyVFMyU4MSVBOCVFMyU4MSU5RCVFMyU4MSVBRSVFNSVBRiVCRSVFNyVBRCU5NiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9OGIzMjZiZjljYTIxN2E1NGI0MzM0NjU2YjkzYjY4YmM&mark-x=142&mark-y=112&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa2VydXBhbmkxMjkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWFiMTZkYWMzYzBlYWFjY2VmODRmOTRjZmE3OGExZTlj&blend-x=142&blend-y=491&blend-mode=normal&s=508a9651fd242a7861fbb750f5d8d55f)
これによると、「半角/全角キー」と「カタカナ/ひらがなキー」だけでなく、「CapsLock」キーもうまくいかないようです。
自宅ではChangeKeyというレジストリを操作するアプリを入れれば問題はないのですが、会社の場合は管理者権限の問題で、上記3つのキー設定は諦めるしかないようです。
→この問題はPowerToysのバージョンアップによって解決しました。
まず最初にPowerToysのキーボードマネージャーを使って、簡単なキーマッピングをしてその上でAutoHotKeyを使うとうまくいきます。
まとめ
![](http://socialunrestinvestor.com/wp-content/uploads/2022/10/PASONA_40_TP_V4.jpg)
WindowsのOSが10から11に変更することによって、従来使えていたスクリプト命令文を書き換えないと使えないことが判明しました。
この対策はSetWorkingDelay命令で代用可能です。
ただ問題点として、「半角/全角キー」と「カタカナ/ひらがなキー」、「CapsLockキー」がうまくマッピングしません。
この問題に対してはPowerToysのキーボードマネージャーを使ってキーの割当を行い、その上でAutoHotKeyを使っていくという方法を取るのがベストであるという解決策になりました。(PowerToysのバージョンアップにより解決可能になった)
自宅のパソコンの場合は、自己責任なのでChangeKeyというアプリで代用できます。
→これによりChangeKeyを使う必要もなくなりました。
ご参考になれば幸いです。
コメント