社区
C#
帖子详情
结束进程时 如何使托盘图标消失?
anya
2009-01-04 12:31:17
在测试中我在任务管理器里结束了这个进程 a.exe
但这个进程的托盘图标却不能随着进程的结束而自动消失
必须将鼠标移到图标上面时才能消失?
请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束)
最好有代码示例,谢谢.
...全文
1459
25
打赏
收藏
结束进程时 如何使托盘图标消失?
在测试中我在任务管理器里结束了这个进程 a.exe 但这个进程的托盘图标却不能随着进程的结束而自动消失 必须将鼠标移到图标上面时才能消失? 请问如何才能做到图标随着进程的结束而自动消失呢(外部强行结束,如在任务管理器将其结束) 最好有代码示例,谢谢.
复制链接
扫一扫
分享
转发到动态
举报
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
打赏
举报
回复
还真的挺管用的哦,
寒江易雪_王孙
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)
vc6.0 mfc实现
结束
程序
进程
及刷新
托盘
图标
结束
进程
后,系统
托盘
图标
往往不能自动刷新,此程序模拟鼠标点击
托盘
图标
刷新
托盘
;
结束
一个
托盘
程序
进程
后,但是windows任务栏
托盘
区的
图标
还在,鼠标移上去后
图标
就
消失
了 这是为什么 怎么解决.zip
结束
一个
托盘
程序
进程
后,但是windows任务栏
托盘
区的
图标
还在,鼠标移上去后
图标
就
消失
了 这是为什么 怎么解决.zip
易语言刷新重置清除系统
托盘
图标
找了好久,
结束
外部程序
进程
后,残留在系统
托盘
的
图标
不
消失
,用这个就简单多了,调用一下就可以,易语言刷新重置清除系统
托盘
图标
,之前用的办法很麻烦,要重启explorer或者模拟鼠标操作一下
任务管理器异常退出
时
托盘
消失
任务管理器异常退出
时
托盘
消失
,此
时
只能找到
进程
,但是界面无法正常显示,使用此代码可以解决这个问题
VC++
托盘
图标
清理程序
程序退出的
时
候,发现程序
托盘
不能清理,通过
托盘
清理可以实现,
托盘
图标
清理刷新
C#
111,095
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章