关于一个进程结束另外一个带有NotifyIcon托盘的进程残留图标问题

猴子写代码 2014-11-11 05:34:25
环境:1、win7
2、进程A
3、进程B(启动是会在右下方任务栏显示托盘图标)
问题:进程A用Process 启动进程B,这是B在右下角有托盘图标,然后用Process关闭进程B,但是右下角的图标还在,只有鼠标放上去后才消失。
现在客户要求进程B关闭后右下角的图标要及时消失。

自己处理过程:在网上找了一下午,没有找到合适的方法
1.http://bbs.csdn.net/topics/300003719 这个解决方案(Dispose),不能解决,因为我是其他进程关闭的,即不正常关闭不会走关闭事件。
2.http://download.csdn.net/detail/huyi9911/2640529 这个方案试了,没用

请大神指点
...全文
672 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnnnb 2017-04-28
  • 打赏
  • 举报
回复
给B发送close消息,让B正常关闭,在B正常关闭前让B清除图标再退出
threenewbee 2014-11-12
  • 打赏
  • 举报
回复
刷新任务栏,产生一个鼠标移动消息才可以。 这个无法受程序控制。不信你开一个任务管理器,然后再在进程中强行关闭,它的图标也是存在的。
M依然 2014-11-12
  • 打赏
  • 举报
回复
没有简单的方式只有让A 关闭B时 先通知B把右下角图标隐藏后 在kill掉B进程。。 我只想到这种方法了
WM_JAWIN 2014-11-12
  • 打赏
  • 举报
回复
不能强制中止进程,如A要关闭B,可以发送WM_CLOSE给B。B在关闭时,把那个notifyIcon1.Visible=false就好了
Win_Cool 2014-11-11
  • 打赏
  • 举报
回复
如果程序正常释放资源,正常销毁.还存在残留图标的话. 那应该找微软去..........
  • 打赏
  • 举报
回复
你可以试试看给 NotifyIcon 对象(或者其弹出的 MenuContext 对象,或者 MenuItem,或者弹出的“气泡对象”之类的)发消息,或许它会消失。 貌似没有什么办法。
  • 打赏
  • 举报
回复
即使是程序自己正常结束,也清理不掉这个图标。更可况你是采取恶劣手段去杀掉别人家的进程。 你可以试试看QQ,仅当你的鼠标在任务栏上点“右键->退出”时才好使,可是这时候你的鼠标本身就在任务栏菜单上。 而如果你直接杀掉QQ进程,那么图标不会关闭。只有当你的鼠标移动到任务栏的QQ图标上,它才会消失。
蜗牛慢慢趴 2014-11-11
  • 打赏
  • 举报
回复
那好像是程序B的问题吧 你在程序A里面改也没有用吧
Win_Cool 2014-11-11
  • 打赏
  • 举报
回复
进程A不要用Process 改用DestroyWindow(HWND 进程B)

110,538

社区成员

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

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

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