一部のキーのイベントが取得できない

低水準キーボードフックでキーボードの押し下げのイベントを取得することができたが,問題が発生した.以下の三つのキーではキー押下のイベントは発生するが,キーを上げたときのイベントが発生しない.正確にはカタカナ/ひらがなキーを連打しているときは押下イベントのみが連続して発生し,他のCapsLockなどのキーを押した瞬間にカタカナ/ひらがなキーのUPイベントとCapsLockのDOWNイベントが同時発生する.謎である.

  • カタカナ/ひらがな
  • Caps Lock
  • 半角/全角

GetAsyncKeyStateを使って試してもやはりダメだった.カタカナ/ひらがなキーなんかは仮想キーコードでも明確に定義されていないので,キーボードに依存したりするのかもと納得できなくもないがCaps Lockが反応しないのはいまいち納得がいかない.
楽天が運営するポータルサイト : 【インフォシーク】Infoseek

変換・無変換キーは問題ないようなので,親指シフト系でも大丈夫だと思う.先日kouyさんが作っていた親指シフトチェッカーを見てもカタカナ/ひらがなキーに割り当てる人はいなそうである.(余談だけどあの図を見てみると左親指のシフトはスペースキーに割り当てが方が良さそうだ)
親指シフトチェッカーを作ってみた : ローマ字入力でもなく、かな入力でもなく

つうかカタカナ/ひらがなキーで親指シフトはまともにできるのだろうか?
姫踊子草のヘルプを見てみると

Alt キー、 Windows キー、ひらがなキーなどは指定できませんし、普通によく使うキーを指定したりすると使いにくくなるかもしれません。親指を使うという観点から言えば、『変換』『無変換』『空白(SPACE)』キーのいずれかになるでしょう。

こんなことが書いてあるのでカタカナ/ひらがなキーは使えなさそうだ.とりあえず今の段階では放置しておく.Caps Lockと半角/全角についてもキーボード入力の主要なキーにはなりえないと思うので今の段階では放置.どうにかできる方法はあるかもしれないが,対応して欲しい人が出たら対応するかもしれない.

[id:tomoemon:20071118]のkouyさんのコメントへ.
本ツールの性格的にはロギングよりも分析の方が重要になってきますので,いただいた意見を参考にいろいろな分析を手軽にできるように実装していこうと思います.自分ではちょっと思いつかない部分もありますので,他にも分析してみたいことがあればお願いします.