サードパーティアプリケーションを使用してNotifyIconの動作を変更します

StackOverflow https://stackoverflow.com/questions/249319

  •  05-07-2019
  •  | 
  •  

質問

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

これを行う方法の例を投稿してください。 :)

役に立ちましたか?

解決

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

他のヒント

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top