2008/03/10(月)キーボードのキー別使用頻度

を調べてみました。

利用したのはタイプ数カウンター

某所にて5日ほどサンプル収集をした結果がこちら。

#large: is not allow

「変換」の使用頻度多すぎw
スペースバーが長いのなんて自分にとって利点でも何でもないことが証明されましたww
やっぱ英語キーボード無理だわw たとえどんなに英語キーボードの利点を語られようともwww

ちなみにBackSpaceの使用頻度が多いのはMS-IMEがバカすぎるせいです

所持キーボード

2008/02/24PC
#large: is not allow

キーボードにはそれなりにこだわりがあります。そうなると必然的かどうか解りませんが、マシンの台数よりも多いキーボードがいつの間にか手元にある状態になっていました。
その中でお気に入りのキーボード*1を紹介します。

続きを読む

2007/01/21(日)キーボード関連のトラブル

PC

キーボード関連のトラブル

PS/2キーボードの利用不可

PS/2→USB変換器にキーボードにつないであれこれいじっていたらPS/2に接続していたキーボード&マウスがWin2k上で利用できなくなった。
で、調査した部分

  • BIOS -> ○
  • GRUB -> ○
  • NTローダー -> ○
  • Win2kログオン画面以降 -> ×

Win2k起動以前は認識していることからWin2kの問題と判別。
デバイスマネージャでPS/2キーボードをみてみるとドライバがロードされていない模様。

試したこと

  • ドライバ当て直し -> ×
  • ドライバ削除後再導入 -> ×
  • キーボードリマップソフト(窓使いの憂鬱)アンインストール -> ×

自分が持っている知識や経験からはどうにもこうにもならないため、Google先生に頼ることに。

解決策

レジストリ
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt
のStartの値が4になっているのを1にすることでPS/2キーボードが利用できるようになる。(マウスも)


英数が入力できなくなる

上記の現象発生後、窓使いの憂鬱の再導入。その後、ATOK15を利用していて半角英数/全角英数が入力できなくなってしまった。
ATOK上での入力モードと実際に入力される文字は以下のような感じ。

ATOK上の設定実際の入力
ひらがなひらがな
半角英数半角カナ
全角英数全角カナ
ATOK OFF半角カナ

とりあえず、正規の方法でアルファベットが入力できなくなった。
こうなると再起動しか直す方法がなく、また頻繁に発生するため非常に困っている。

試したこと

ATOKを入れ直したり、窓使いの憂鬱を入れ直したりしても状況は改善されず。で、英数が入力できなくなってしまう時を注意深く調査した結果、Ctrl+英数を押した場合に発生することが判明。

原因

Ctrl + 英数キーを押して入力モード切替を行う際に、入力モードが切り替わらない場合がある

そういえば、Capsと左Ctrlを入れ替えているのでCapsLockを行う場合は「右Shift+左Ctrl」という感じとなっています。このCapsLockを行う際に誤って右Shiftの下にある右Ctrlを押してしまったためにCtrl+英数が入力されこのような現象が起きているのではないかと推測できます。

Ctrl+英数とは何だ

ここで問題となるのはCtrl+英数が何をしているのかということである。
JUSTSYSTEMのサポートによると、Ctrl+英数は「日本語106/109キーボード(Caps+英数)」のドライバにおいてカナロックを行う際に利用するということらしい。
で、カナロックとは何かと調べてみるとIMEがOFFの状態で半角カナを入力するための機能らしい。
上記の原因と組み合わさってCtrl+英数によるカナロックが解放されないためにATOK上で入力文字種を変更してもカタカナが入力されてしまうと推測できる。

解決策

ドライバを当て直した際に、「日本語106/109キーボード(Ctrl+英数)」が導入されてしまったことが原因っぽい*1。手動でキーボードのドライバを「106/109日本語キーボード」に変更してやることでCtrl+英数でカナロックがされなくすることができる*2

ちなみに、このような現象はWin2kを5年程度使い続けて初めて起きたことから、デフォルトで当たるキーボードのドライバは「106/109日本語キーボード」ではないかと考えられる。

*1 : ただし、「101/102 英語キーボードまたは Microsoft Natural PS/2 キーボード」と表示され、実際の配列は日本語106/109となる。

*2 : 「106/109日本語キーボード」でのカナロックは「Shift+Ctrl+ひらがな」となる。

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キーボードライクに使用する方法