[Autohotkey]半角/全角キーやCapsLockが正常に扱えない理由と対策

今回は半角/全角キーやCapsLockを「便利に使えるキー」としてAutoHotKeyで扱えるようにしようというテーマでお話したいと思います。

あくまで今回は事前準備ですが、これらのキーがAutoHotKeyで設定してもうまく扱えないという方は、ぜひご覧ください。

半角/全角キーやCapsLockはAutoHotKeyで使えない?

この2つのキーは厄介です。AutoHotKeyでこれらのキー入力を感知しようと思うと、そのままではうまくいきません。以下はAutoHotKey Wikiからの引用です。

半角/全角、CapsLock、かな(カナロック) などのLock系のキーへのキー割り当ては上手く行かない。
これはOSのローカライズ段階で発生してる問題であり、フック系のキーカスタマイズユーティリティ全般で発生する。
AutoHotkeyがキーを認識する前の段階で、OS側がキーUp/Down情報を変更してしまっているためである。

(中略)

単純なキーの置き換え以上の事をしたい場合は、キーボードに無いキー(F13~F24など)にいったん割り当てを行った上で、そのキーに対してAHKで割り当てを行うという二段構えを行う必要がある。

つまり複雑な操作はそのままでは無理ということです。どういうことなのか見てみましょう。

そのままでは使えない理由

キーを押した状態を確認するには、AutoHotKeyのタスクトレイアイコンをダブルクリックし、出てきたウインドウのメニューの「View」→「Key history and script info」を選択します。

こちらが通常のキーを押した状態です。

このようにidなど通常の文字キーを押すと、押す(Down)→ 離す(Up)という一連の動作が記録されています。

続いて半角/全角キー、CapsLockを押した状態がこちらです。

上2行が半角/全角キーを押したときの挙動、F5の更新を挟んで下がCapsLockキーです。

この2つのキーの場合、Upから始まる/Downしか記録されないといったおかしな状態。左端のvk(仮想キーコード)も違ったものになってしまっています。

つまりAutoHotKeyではこれらのキーの入力が正しく感知できていないと言うことです。

そこで、この2つのキーを使用する場合には(実際には存在しない)F13以降のファンクションキーとしてAutoHotKeyに認識させようというのが、今回の解決策です。

半角/全角キーとCapsLockキーをF13,F14キーに変更する

ChangeKeyで割当てを変更

使用するのはChangeKeyというソフトウェア。

窓の杜
「Change Key」非常駐型でフリーのキー配置変更ソフト

こちらも割と古いソフトになりますが問題無く使えます。前回使用したKeySwapと同じようなソフトですが、こちらはスキャンコードで指定することで、あるキーをF13以降のキーに割り当てることができます。

  1. ダウンロード→解凍が済んだらフォルダを開いてChgKey.exeを管理者権限で実行してください。

キーボードの画面が出てきます。

キー割り当てを一旦別のキーに変更する

使い方はシンプル。

  1. 機能を変更したいキーを画面上でクリック
  2. 緑色の画面が新たに開くので、割り当てたいキーをクリック
  3. メニューの「登録」→「現在の設定内容で登録」を選択する
  4. マシンを再起動させるダイアログが開くので、再起動する

基本的にはこれだけでキーの割り当てが完了しますが、半角/全角キーやCapsLockの場合、一旦HomeやEndなど、別のキーに割り当ててマシンを再起動しましょう

直接F13以降に割り当てると、僕の環境ではうまくいきませんでした。

再起動後、スキャンコードで割り当てる

一旦マシンを再起動したらもう一度ChangeKeyを開きます。最初の青い画面で半角/全角キーなどを選択するまでは一緒ですが、新たに出てきた緑の画面では「Scan code」ボタンを選択してください。

スキャンコードを入力する画面になります。

ここでスキャンコードを入力しましょう。F13とF14のスキャンコードは以下になります。

  • F13→0x0064
  • F14→0x0065
  • F15→0x0066

「0x」より右の数字4桁を入力すればOKです。

半角/全角キーとCapsLockキーそれぞれでこの作業を行った後、先ほどと同じ手順でマシンを再起動してください。

AutoHotKeyで正常に状態取得できるかチェックする

それではもう一度AutoHotKeyでキーの状態が正常に取得できるかチェックしてみましょう。

AutoHotKeyのタスクトレイアイコンをダブルクリックし、出てきたウインドウのメニューの「View」→「Key history and script info」で該当キーを押してみます。

このようにF13,F14キーがDown→Upの順で記録されていれば成功です。 これで 半角/全角キーやCapsLockはF13、F14キーとしてマシンに認識されました。

次回予告

今回は半角/全角キーやCapsLockキーをAutoHotKeyで扱うための事前準備を行いました。

次回からはこれまで紹介できていないAutoHotKeyのコマンドを扱っていきたいと思います。

タイトルとURLをコピーしました