2006/12/14(木)hpサーバ用キーボードを日本語106ライクに使用する

前回の記事でスキャンコードがわかりましたので、今回は調査したスキャンコードを使用して日本語106キーボードのように利用できるようにします。ちなみにこの記事は対象のキーボードで書いています。

キーリマップ方針

  • 半角/全角キーが無いためどうしようか悩んだ結果、使用頻度の少ない「無変換」キーに割り当てることにする
  • 「漢字」キーに「ひらがな」を割り当てる為、右Altは存在しない
  • 「英数」キーに「右Ctrl」を割り当てましたが、押し続けていることを検出できない為、Ctrl+○として動作しません。適当なキーに置き換えると幸せになれるかもしれません。
  • その他はキートップの表記に従う
  • キーを離した時のスキャンコードが発生しない為、キーが押されたタイミングで連続して離した時のスキャンコードを発生させる

窓使いの憂鬱による106日本語化

利用したキーリマップソフトは「窓使いの憂鬱」です。
当初の方針としては日本語109キーボード向けの定義ファイル(.mayuファイル)に追加することで実装しようと思っていたのですが、あまりに長くなりすぎた為単体のキー定義ファイルを作成しました。

定義ファイル (106onA2880.mayu)

ダウンロード

こちらから (現在配布を見合わせています)
配布を再開しました(08/07/10)
こちらから:109onA2880.zip

ライセンス

106onA2880.mayuは109.mayuをベースに作成しましたので109.mayuのライセンスに準拠することとします。
ユーザーはBoost Software Licenseに従い自由に利用できます。

2006/12/13(水)hpサーバ用キーボードスキャンコード調査

a2880b.jpg

ヒューレット・パッカードのサーバ用キーボードA2880Bを入手したのですが、このサーバ用キーボードは一般的な日本語106キーボードのような外見をしていながら、発生させるスキャンコードが異なります。

今回は日本語106キーボードのように利用できるようにする為にスキャンコードの差異を調べてみました。

hpサーバ用キーボードと日本語106キーボードとのスキャンコード差異

注意点

  • hpサーバ用キーボードは一部のキーを除いて押下時にのみスキャンコードを発生させる
  • 押下時のみスキャンコードを発生させるキーを連続して押すとキーリピートのフラグが付加される
  • N/Aは日本語106キーボードが発生させないスキャンコードであることを意味する
  • 以下に明記されていないキーは日本語106キーボードと同一のキーコードを発生させる(ただし押下時のみ)
A2880Bキー表記 スキャンコード 106JP
Esc0x64N/A
Ctrl0x38L-Alt
Caps0x1dL-Ctrl
Alt0x71N/A
無変換0x66N/A
変換0x6aN/A
漢字0x72N/A
英数0x3aCapsLock
F10x58F12
F20x59N/A
F30x5aN/A
F40x5bN/A
F50x5cN/A
F60x5dN/A
F70x5eN/A
F80x5fN/A
F90x60N/A
F100x61N/A
F110x62N/A
F120x63N/A
PrtScr0x6eN/A
ScrLk0x76N/A
Pause0x77N/A
Ins0x7b無変換
Del0x79変換
Home0x7fN/A
End0x7aN/A
PageUp0x6fN/A
PageDown0x7eN/A
0x78N/A
0x56N/A
0x55N/A
0x7d\ /|
\ / |0x75N/A
] / }0x29半角/全角
\ / _0x70ひらがな
NumLock0x01Esc
Num /0x45NumLock
Num *0x46ScrLk
Num -0x54SysRq
Num +0x37Num *
Num Enter0x4eNum +

押下/押上両方のキーコードを発生させるキー

hpサーバ用キーボード上の表記

  • Ctrl
  • 左Shift
  • 右Shift
  • CapsLock
  • Alt

関連記事

hpサーバ用キーボードを日本語106キーボードライクに使用する方法