DOBON.NET DOBON.NETプログラミング掲示板過去ログ

タスクトレイのアイコン表示の更新

環境/言語:[環境/言語:[Windows XP C# VisualStudio2005] ]
分類:[.NET]

お世話になります。
他プロセス(市販品)を強制終了させたときに
p.Kill();
p.Close();
p.Dispose();
この他プロセスのアイコンがタスクトレイに残ります。
(カーソルをアイコンの上に持っていくと消えます)
簡単に言うとタスクトレイのアイコン表示を自プロセスから最新状態
に更新したいのですが、可能でしょうか?
■No30097に返信(siroさんの記事)
> 他プロセス(市販品)を強制終了させたときに

本来的には強制終了を避けるべきでしょう。
そのソフトウェアの修正を依頼するとか、そういった道筋が理想です。
(Kill じゃないとダメなのかも疑問ですが)


> 簡単に言うとタスクトレイのアイコン表示を自プロセスから最新状態
> に更新したいのですが、可能でしょうか?

いくつかのキーワードで探してみましたが、きれいな形のものは見つかりませんね。
このニーズ自体、通常あり得ない異常なことなので、そういった API などは用意されていないのかと推測されます。

邪道として、WM_MOUSEMOVE を直接送るとか、カーソルをプログラム的にポイントさせるとかあるようですが、省略されているアイコンがうまく消えないかもしれません。
完璧な方法はないかもしれませんので、この路線で進めるのはおすすめできません。


いくつか見つけた邪道っぽいもの:
http://malwareanalysis.com/CommunityServer/blogs/geffner/archive/2008/02/15/985.aspx
http://stackoverflow.com/questions/8342614/refreshing-system-tray-icons-programmatically

DOBON.NET | プログラミング道 | プログラミング掲示板