問題を再現するサンプルプロジェクトについては上記を参照してください。HTMLを表示するために、C#WindowsフォームにFirefox(Gecko)ActiveXコントロールがあります。ActiveXコントロールが私たちのフォームにあるとき、私たちのキープレスの2〜3%はそれを通過させません。別のWindowsメッセージが送信されます。Tabキーを押しながら、3つの通常のWinFormsテキストボックスをタブ移動します。97%の確率で正しく動作します。スパイは、WM_KEYDOWNメッセージが正しく送信されたことを通知します。http://judahhimango.com/images/normaltab.jpg[通常の動作http://judahhimango.com/images/normaltab.jpg]しかしランダムに、たぶん2〜3%の時間で、タブキー(または他のキー)は正しく処理されません。t’文字を挿入するなど)。ActiveXコントロールが私たちのフォームにある場合にのみ発生します。良いことに、この問題をどのように解決しますか。Answer2WM_CHARメッセージはTranslateMessage呼び出しによって生成されるので、探し始めるのに良い場所はGeckoソースコードのTranslateMessage呼び出しです。最初のコード例では、関数はmozctl.dllとxul.dllの2つのライブラリによってのみインポートされます。GeckoFXでも同じエラーが発生すると主張しているので、mozctl.dllを方程式から外すことができます。+`を調べることをお勧めします。エンジンが埋め込まれている場合にコードが実行されるかどうかはわかりませんが、実行されると、ライブラリは別のスレッドでまったく新しいメッセージポンプを起動します。ActiveXコントロールなし)ので、デバッガでこれを検証することはできません。誰かがそれをさらに突き止めるのに役立つことを願っています。source1根本的な問題は、Mozillaが他のアプリケーションに埋め込まれていると、内部イベントを送出するときに誤ってWindowsメッセージを送り出すことです。[nsIEventTarget])。Webページに多数のアクティブなXMLHTTPリクエストが埋め込まれている場合、Mozillaはそのイベントディスパッチインターフェイスを使用してイベントをJavaScriptにディスパッチし、副作用としてWindowsメッセージを送ります。Mozillaイベントが完全に送出されると、メインイベントループに戻ります。MozillaがWindowsメッセージを送信するとき、アプリケーションのイベントループによって行われる余分な処理(IsDialogMessage()、TranslateMessage()、PreTranslateMessage())、またはその他の前処理はMozillaがこの状態になったときにスキップされません。そのため、ダイアログのナビゲーションに使用されずにタブキーが文字として挿入されたり、キーボードホットキーが散発的に無視されたり、カスタムメッセージの前処理が散発的にスキップされたりすることがあります。2007/2010の「作成」画面では、キーボード入力を処理するためのカスタムメッセージの前処理に依存しているため、キーストロークが散発的に失われます。この問題を解決するパッチについてはhttps://bugzilla.mozilla.org/show_bug.cgi?id=582790を参照してください。Anti-Keyloggerを持っています。Hookをインストールしようとしていることを検出しました。Firefoxファイルxul.dllがキーボードフックでインストールを試みます。source0相互運用性のすべてを自分で実装したことに気づきました。GeckoFXプロジェクトでこれを試しても同じエラーが出るかどうか確認できますか。私は職場でこのプロジェクトを使用していますが、まだ問題は発生していません。