システム トレイ (通知領域) で実行される非常に基本的なアプリケーションがあります。メソッドは次のMain
ようになります。
using (NotifyIcon notifyIcon = new NotifyIcon())
{
notifyIcon.ContextMenuStrip = new ContextMenuStrip();
notifyIcon.ContextMenuStrip.Items.Add(new ToolStripMenuItem(
"Exit",
null,
delegate { App.Exit(); }
)
);
notifyIcon.Icon = Properties.Resources.MyIcon;
notifyIcon.Visible = true;
Application.Run();
}
これまでのところ、これは問題なく動作します (コンテキスト メニューの [終了] オプションを使用すると、アプリケーションは適切に終了します。ただし、ソフトウェアをアンインストールするときにアプリケーションを終了する必要があります。現在taskkill
、WiX インストーラーから使用してこれを実行しています (多分もっと良い方法がありますか?). 問題はtaskkill /im myapp.exe
、通知領域のアイコンが消えるが、プロセスはまだ実行されていることです. で強制的に閉じるとtaskkill /f /im myapp.exe
、プロセスは終了しますが、アイコンは残ります (マウスをホバーするまで)アイコンを削除して別のプロセスからプロセスを終了する方法はありますか?