詳細: Windows CE 4.2、Compact Framework 2.0 SP1 を実行するカスタム モバイル デバイス。今まで問題なく P/Invokes を適切に使用する C# アプリ。
低レベルのキーボード フック (この CodeProject の投稿と似ていますが、同一ではありません) を作成しましたが、これは 1 つの例外を除いて驚くほど機能します。私たちのソフトウェアが行うことの 1 つは、Windows CE の画面調整機能へのアクセスを許可することです。これは、一連のターゲットをタップする必要がある画面であり、最後に Esc を押してキャンセルするか、Enter を押して受け入れます。この機能は P/Invoke を介して呼び出しますが、この Win32 API 関数内で発生するキー押下は、私のキーボード フックによって妨害されていると思います。
私のキーボード フックは集中的なことは何もせず、実行フローも変更しませんが、この 2 つの使用法は根本的に互換性がない可能性があると思います。この画面を実行した後にデバッガーを終了すると、すべての Enter キーを押して、プログラムを閉じるときに一度にすべての「ヒット」を試みました (このデバイスはカチカチというタイピング音を出します)。これは、フックがキープレスを Win32 API 関数に適切に渡していないことを示しています。何かご意見は?
a) キーボード フックとキーボードを必要とする P/Invokes に互換性がない、
b) キーボード フックの実装に問題がある、
c) ハードウェアの製造元、ドライバーなどにまったく依存していると思いますか?
ご協力いただきありがとうございます!