0

C# アプリケーションを介して、別のアプリケーションによって作成された NotifyIcon を表示、非表示、または変更できるかどうかを常に知りたいと思っていました。

誰かがこれを行う方法の例を投稿してもらえますか? :)

4

3 に答える 3

2

システム トレイのアイコンを変更するには、Shell_NotifyIcon Win32 API ( P/Invoke 宣言) を使用できます。アイコンは、ウィンドウ ハンドルと ID に関連付けられています。つまり、別のプログラムのアイコンを変更または非表示にするには、そのアプリケーションがそれを登録するために使用するウィンドウと ID を知る必要があります。たとえば、そのプロセスのすべてのウィンドウを列挙し、各ハンドルと 0 から 5000 千の間の各番号で呼び出しを行うことで、ブルート フォースを実行できる可能性がありますが、成功する可能性は非常に低くなります。

于 2008-10-30T06:07:37.803 に答える
1

SystemTray ウィンドウ自体をフックして、すべての Shell_NotifyIcon() リクエストを傍受できます。次に、各アイコンに登録されている正確な HWND と ID がわかります。詳細は、任意の検索エンジンで見つけることができます。

于 2009-06-17T01:51:43.193 に答える
-1

他のアプリケーションがパブリックメソッドを公開するか、リフレクションを使用しようとしない限り、私は何も知りませんが、実行中のプロセスでそれを実行できるかどうかさえわかりません。

于 2008-10-30T05:04:38.553 に答える