2012-03-21 12 views
0

C#WinFormsアプリケーションで使用しているMainMenuコントロールにすべてのクリックを記録します。メニューシステムは非常に広範囲で、その一部はオンザフライで生成されます。私は、クリックしたときにMenuItemオブジェクトを取得するMainMenuに直接何かを追加する方法を探しています。WinForms MainMenuコントロール内のすべてのクリックを検出します

私はApplication.AddMessageFilterを使用して残りのアプリケーションのすべてのクリックをキャッチしましたが、MainMenuコントロールが何らかの形でこのように追跡されるようです。

+0

私にとって本当にシンプルな音です。 MenuItemのクリックイベントでは、e.Buttonsのクリックをデータストアのマウスクリックに渡します。 –

+0

メニューはいくつかの場所で動的に生成されます。私は一度追加できるものを探しています。 – JustinDoesWork

答えて

1

あなたがグローバルで何かが必要な場合は、http://globalmousekeyhook.codeplex.com/

で見てこのライブラリを使用すると、キーボードとマウスをタップすると、検出し アプリケーションがアクティブでない場合でも、彼らの活動を記録することを可能にし、 で実行されますバックグラウンド。

私は私のアプリケーションでこれを行うならば、彼らは確かに監査人による「クリーン」のソフトウェア・テストに合格しないとわからないが、おそらく、あなたのアプリケーションは、企業内部で、この「特定の/単一の」アプリケーションのキーストロークをキャプチャマウスの動きはセキュリティの要件を満たします。

+0

申し訳ありませんが、私はこのMainMenuコントロールで何が起こっているかをキャプチャするだけの厳しい命令を受けています。 – JustinDoesWork

+0

@ JustinDoesWorkなぜ「あなたはアプリケーションの残りの部分のすべてのクリックをキャッチするためにApplication.AddMessageFilterを使用しましたか」と書いていましたか? –

+0

その機能は実行され、これ以外のすべての状況で正しく機能します。私の仕事は今この問題を解決することです。 – JustinDoesWork

関連する問題