4

別のアプリケーションのシステムトレイアイコンからコンテキストメニュー項目をプログラムで見つけて選択する方法を理解する必要があります。これを達成することを想像できる唯一の方法は、ハードコードされたx / y値でmouse_event()を使用し、アイコンを常に表示するように設定することでした。一般的なハードコーディングのハッキーな使用は別として、ここでの問題は、アイコンがその位置を保持するという仮定です(これは、別のアプリケーションがロード/アンロードするたびに壊れる可能性があります)。誰かがこれについて他の方法を知っているかどうか疑問に思いましたか?

4

2 に答える 2

3

アプリケーションの作成方法によっては、コンテキスト メニューから項目を選択するWM_COMMANDと、アプリケーションに属するウィンドウにメッセージが表示されます。Spy++ などのツールを使用して、これを確認できます。この場合、(理論上) 行う必要があるのは、そのメッセージをシミュレートすることだけです。

アプリケーションがコンテキスト メニューからの選択を受け取るために使用しない場合、WM_COMMAND作業ははるかに難しくなります。システム トレイ アイテムの位置と識別を発見する方法は文書化されていないため、x/y 値をハードコーディングする方法がおそらく最良の選択肢です。

于 2013-01-10T03:56:14.247 に答える
2

systemTray のハンドルを見つける方法について説明しているこのMSDN フォーラムの記事を参照してください。次に、この記事では、探しているアプリケーションのハンドルを見つける方法に関するCodeProjectの記事を参照します。私はこれを試していませんが、実行可能な出発点になるようです。

于 2013-01-10T04:03:55.980 に答える