结束进程时 如何使托盘图标消失?

anya 2009-01-04 12:31:17
在测试中我在任务管理器里结束了这个进程 a.exe
但这个进程的托盘图标却不能随着进程的结束而自动消失
必须将鼠标移到图标上面时才能消失?
请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束)


最好有代码示例,谢谢.
...全文
1459 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
a2b0c6 2012-07-17
  • 打赏
  • 举报
回复
还是觉得dispose()比较科学一点。
simpleloving 2012-06-29
  • 打赏
  • 举报
回复
退出时 直接把QSystemTrayIcon::hide()貌似可行!
SunYu88 2011-03-28
  • 打赏
  • 举报
回复
试试看在进程关闭前加上
notifyIcon1.Visible = false;
lynmsdn 2011-01-19
  • 打赏
  • 举报
回复
还真的挺管用的哦,
  • 打赏
  • 举报
回复
public void DisposeNotify()
{
if (this._tray != null)
_tray.Dispose();
}
主界面Form_Closing时,将Notify.Dispose();掉就OK了啊,关键看这个Notify怎么访问
dngsdhy 2011-01-19
  • 打赏
  • 举报
回复
呵呵,这个问题刚开始也困拢了我半天,上网找了很多贴子都没有解决的方法,后来我自己试了一个它的方法,结果一测试完全好用:在程序的closed事件处理程序中调用NotifyIcon控件的Dispose()方法,这样程序退出后托盘上的图标立刻就消失了。
private void Window_Closed(object sender, EventArgs e)
{
myNotifyIcon.Dispose();
}
tsorgy 2009-01-05
  • 打赏
  • 举报
回复
应用程序操作托盘图标是通过windows的委托来处理的,也就是应用程序对系统说“我要添加一个图标”,于是任务栏就多了个图标,程序退出时对系统说“把我的图标删除了”,任务栏才会消除图标。。。

直接砍掉一个进程,那个程序异常退出,还未来得及说“把我的图标删除了”,所以任务栏图标不会立刻消失。。
king520520 2009-01-05
  • 打赏
  • 举报
回复
这是因为window UI 没能即时更新过来,所以不行;
如果想解决这个问题,那要从window入手,而不是本进程的问题;
就像刚才楼上说的那样,window没做好,其实也不是没做好,
只是window的特性而已.操作系统不同,可能会有不同
CsToD 2009-01-05
  • 打赏
  • 举报
回复
任务管理器是强制结束进程的,而不会给进程发送任何消息,所以进程并不知道自己被结束了,从而无法清除图标。
解决方法也不是没有,只不过麻烦一点:
挂钩API。

任务管理器的“结束进程”是通过调用TerminateProcess这个API实现的,所以你可以挂钩对这个API的调用,这样你就知道什么时候被任务管理器结束了,当然可以清除图标。

任务管理器的“结束任务”我不清楚是怎么实现的,但肯定不是调用TerminateProcess,你可以去查一查,然后挂钩相应的API。
CruelYoung123 2009-01-05
  • 打赏
  • 举报
回复
我看到有一个VC程序可以刷新关闭无效的托盘程序图标。 C#不知道咋 弄。
zcfzcf001 2009-01-05
  • 打赏
  • 举报
回复
系统托盘就是这种机制,貌似微软的问题。
bingbingw 2009-01-05
  • 打赏
  • 举报
回复
是滴~~
bbbbbb888888 2009-01-04
  • 打赏
  • 举报
回复
windows的问题,解决不了吧。
Foxer 2009-01-04
  • 打赏
  • 举报
回复
程序是在任务管理器里强制结束的,程序根本控制不了这个图标,除非微软想办法,或者你自己去刷新那些图标,否则只能忍着了
hyblusea 2009-01-04
  • 打赏
  • 举报
回复
程序异常关闭,托盘图标是不会自动消失的...
hyblusea 2009-01-04
  • 打赏
  • 举报
回复
退出时让 托盘 控件不可见..再退出.
TempOneUser 2009-01-04
  • 打赏
  • 举报
回复
这是相当的正常啊·····慢慢适应它吧······
xxyping 2009-01-04
  • 打赏
  • 举报
回复
正常吧,还是微软的系统没做好。如果做的好的话你就不会看的见了。也很期待哪位大虾给个答案!
journeydj 2009-01-04
  • 打赏
  • 举报
回复
习惯吧,至少我没看到哪个程序能自动消失。就是visual studio也不行。
pw2580 2009-01-04
  • 打赏
  • 举报
回复
也遇到过,不知有没有人解决过
加载更多回复(5)

111,095

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧