2006年8月28日(月)
CEでのキーフックについて
WindowsCEではSetWindowsHookExが公式にはサポートされていないが(標準ヘッダにない)適当なプロトタイプ宣言があれば使える、いわゆる隠しAPI(?)である。
ただ以下のような制約がある。
1.有効なフック種別はWH_KEYBOARD_LLのみ
2.フックはグローバルに一つのみ有効
貧弱なんだけど代わりがないのでキー入れ替えユーティリティのほとんどが使ってたりする。
ここで問題になるのが2の制約でSetWindowsHookExを使えるソフトは同時に一個に限定されてしまう。
隠しAPIに文句をつけても仕方がないので、何とかならないか試してみた。
結果何とかなったようなので、とりあえず人柱を求めて晒してみる
http://www.geocities.jp/hou_ming_2/beta/multikeyhook.zip
[追記8/31]
うまく実機で動作しないようですので消しました。
・人柱版なのでそれなりの覚悟で使用すること
・当然のように説明書はない。ファイル見てもインストール手順が分からないような人にはおすすめしない。
・こいつの設定を変更すると、それまでのキーフックはすべて解除される。
・キーフックはSetWindowsHookExを実行した順に行われる。
・多分ほとんどのキーユーティリティが多重フックを想定して作られていないので、キーユーティリティを複数動かすとどういう事体がおきるかわからない、無保証である
[追記8/30]
・リセット時に設定は保存されない(通常の状態になる)
・例によってエミュレータでの確認しかしてないので実機での動作は不明
[/追記8/30]
動作(or不動作)報告はウェルカムである。ただし使用ソフトや発生する事象などは整理しておいてほしい。間違っても、こちらには何の報告もせずに自分のブログや他所の掲示板などに「うまく動かないんだけど」とか書かないように!

