概要
私の利用しているDell XPS13では、キーボードスペースの関係かPause/Breakキーが存在しない。BIOS等でもキーの入れ替えができないので、それならばという事でチャレンジしてみた。
yamyを使う
yamyは、窓使いの憂鬱(mayu)から派生したWindows用のキーバインディング変更ソフトです。結果的にこれを使うのが最も確実でした。
mayuがドライバベースでフックするのに対して、yamyはユーザーモードでフックするする関係で署名警告やドライバ競合の悩みから解放されるのが良くWindows 10でも動作しました。
ダウンロード
下記のダウンロードページから最新版をダウンロードして、適当なフォルダへ展開します。
2016/12/18時点で最新版は 0.03 でした。
設定ファイルの作成
今回は個人的にあまり需要がないInsertキーを潰して、Pauseに仕立て上げます。
展開したyamyフォルダ内に「replace-ins-to-pause.mayu」というファイル名で下記内容のファイルを作ります。
include "109.mayu"
keymap Global
key D-Insert = &VK(D-PAUSE) &VK(U-PAUSE)
key R-Insert =
key U-Insert =
Pauseは単発のみでリピートしないタイプなので、Insertキーが押された(Down)時にPauseキーのDownとUpを同時に送信します。
長押し時とInsertキーが離された時は無視するようにします。
起動&初期設定
先ほど作成した設定ファイルを読み込むようにyamyを設定します。
- yamy.exe を実行します。
システムトレイに常駐しているか確認しておきます。
この設定程度であれば管理者として実行しなくても機能しました。 - yamyのトレイアイコンを右クリック>設定 を選択します。
- 追加ボタンをクリックすると、登録画面になるので下記内容を入れます。
- 名前:InsキーをPauseにする
- ファイル名:replace-ins-to-pause.mayu
- シンボル:-DUSE109
- OKボタンをクリックして追加します。
- 先ほど追加した「InsキーをPauseにする」を選択した状態でOKボタンをクリックします。
名前は自由なので適当に決めてください。
※もし設定ミスがあれば、ログウィンドウが表示されてエラー内容が出ていると思いますので、適宜修正します。
確認
yamyのトレイアイコンをダブルクリック(もしくは右クリック>調査)して、スキャンコードと仮想キーの入力欄でInsertキーを押下して動作を確認しておきます。
スキャンコードは元のInsertについて、仮想キーにD-PauseとU-Pauseが表示されてると思います。
E0-0x52 D-NL-Insert
E0-0x52 U-NL-Insert
0x13 &VK( D-PAUSE )
0x13 &VK( U-PAUSE )
一時的に無効にしたい場合
yamyのトレイアイコンを右クリック>一時停止を選択すれば、キーバインドが無効になります。
番外:Scancode Mapの書き換えではだめだった話
最初は、レジストリの「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout」に「Scancode Map」を設定すればいけると思ったが、どうもPauseのような複雑なキー送信が必要なものには使えないようでした。
なので、スキャンコードを入れ替える系のソフトウェア(ChangeKey、KeySwapなど)では何かのキーをPauseに置換することはできないと思われます。
Pauseのスキャンコード
ちなみに、Pauseキーがある機種で送出されるキャンコードはSet1の「E1 1D 45 E1 9D C5」かSet2の「E1 14 77 E1 F0 14 F0 77」どちらからしいです。
-
Key Support, Keyboard Scan Codes, and Windows
に記述されているマイクロソフトのドキュメント「Keyboard Scan Code Specification」で確認しました。