以编程方式删除其他程序的通知托盘图标

时间:2010-07-02 06:26:46

标签: .net process taskbar

我正在尝试为Dream Daemon编写一个监控应用程序,这是一个特定的服务器应用程序。由于服务器应用程序容易崩溃(具体而言,Dream Daemon是特定品牌的解释代码的服务器,因此解码的代码崩溃,让DD空闲)。

为了避免人们不得不手动登录并在代码运行后每天多次重启事件我们让它运行崩溃或毛刺严重,我试图将其设置为自动监视器将检查服务器的位置失败,然后关闭并重新启动程序。由于Dream Daemon中的某些特定行为,我无法使用process.Close()调用,因为DD会拦截它并简单地将自身最小化到系统托盘中。如果我处理.Kill(),我结束DD,但这会留下一个孤立的通知栏图标。我想知道我是否有办法以编程方式删除该图标,因此我的监控程序可以自行清理。

1 个答案:

答案 0 :(得分:1)

因为它是一个没有人可能登录的服务器我不确定我是否会过多地担心这些图标会延迟,但是如果你真的想要删除它们,我不认为有一个很好的方法可以做到这一点。我知道刷新系统的唯一方法是将鼠标移动到其中的图标上。

您当然可以编写代码来模拟将鼠标移动到应该以相同方式工作的图标上。因此,由于您不知道要刷新哪个图标,您需要找到系统托盘,获取它的位置和尺寸,然后模拟鼠标移动它。

Here是一篇带有示例代码的文章(在C ++中,但由于它很短,因此在转换为C#或类似代码时不应该太难)这样做。