VBsp6です。
タスクトレイに常駐しているプログラムを強制終了させるツールを
作成しているのですが、任意の常駐プログラム(自作ではない)の
プロセスを終了させてもそいつのアイコンがタスクトレイに
残ってしまいます。(マウスカーソルをかざすと消える。)
トレイの内容を臨機に更新するため再描画のような処置が
必要になりそうなのですがどのようにすればよいのでしょうか。
ダミーアイコンをトレイに追加&削除したりなぞしても
再描画更新されませんでした。
補足です。
強制終了にはTerminateProcessを使用しています。
SendMessage-WM_CLOSE等を使うのが望ましいとは思うのですが、
WM_CLOSEでは(ウインドウが閉じるだけで)終了までしてくれない
プログラムがあるので。。
> トレイの内容を臨機に更新するため再描画のような処置が
> 必要になりそうなのですがどのようにすればよいのでしょうか。
トレイ自体の再描画はわかりませんが
そのウインドウハンドルを取得できているならNIM_DELETEを送ってみてはいかがでしょう
それですべてがうまくいくわけではありませんが
あるていどはうまくいくと思います
> 強制終了にはTerminateProcessを使用しています。
> SendMessage-WM_CLOSE等を使うのが望ましいとは思うのですが、
> WM_CLOSEでは(ウインドウが閉じるだけで)終了までしてくれない
> プログラムがあるので。。
どうせなら
WM_CLOSE
WM_DESTROY
TerminateProcess
の順で送るようにしてはいかがでしょう
ほとんどのものはWM_CLOSE、WM_DESTROYで終了しますので
あ〜すみません
NIM_DELETE送っても意味ないです
何をを勘違いしてるんだか
本当にごめんなさい
ツイート | ![]() |