タスクトレイを再描画するには


塩酸  2004-09-08 02:09:47  No: 85461

VBsp6です。
タスクトレイに常駐しているプログラムを強制終了させるツールを
作成しているのですが、任意の常駐プログラム(自作ではない)の
プロセスを終了させてもそいつのアイコンがタスクトレイに
残ってしまいます。(マウスカーソルをかざすと消える。)
トレイの内容を臨機に更新するため再描画のような処置が
必要になりそうなのですがどのようにすればよいのでしょうか。
ダミーアイコンをトレイに追加&削除したりなぞしても
再描画更新されませんでした。


塩酸  2004-09-08 19:05:56  No: 85462

補足です。
強制終了にはTerminateProcessを使用しています。
SendMessage-WM_CLOSE等を使うのが望ましいとは思うのですが、
WM_CLOSEでは(ウインドウが閉じるだけで)終了までしてくれない
プログラムがあるので。。


kara  2004-09-09 07:19:30  No: 85463

> トレイの内容を臨機に更新するため再描画のような処置が
> 必要になりそうなのですがどのようにすればよいのでしょうか。
トレイ自体の再描画はわかりませんが
そのウインドウハンドルを取得できているならNIM_DELETEを送ってみてはいかがでしょう
それですべてがうまくいくわけではありませんが
あるていどはうまくいくと思います

> 強制終了にはTerminateProcessを使用しています。
> SendMessage-WM_CLOSE等を使うのが望ましいとは思うのですが、
> WM_CLOSEでは(ウインドウが閉じるだけで)終了までしてくれない
> プログラムがあるので。。
どうせなら
WM_CLOSE
WM_DESTROY
TerminateProcess
の順で送るようにしてはいかがでしょう
ほとんどのものはWM_CLOSE、WM_DESTROYで終了しますので


kara  2004-09-09 07:21:02  No: 85464

あ〜すみません
NIM_DELETE送っても意味ないです
何をを勘違いしてるんだか

本当にごめんなさい


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加