【问题标题】:C# How do I check the a processes icon and determine which one it is usingC#如何检查进程图标并确定它正在使用哪个进程
【发布时间】:2010-03-31 16:55:20
【问题描述】:

我有一个程序需要检查系统托盘中图标的状态。系统托盘中的程序根据它与服务器的通信状态交换它的图标,我需要检查它现在正在使用哪个图标。我找到了一种提取当前图标的方法,但是如何检查是哪个图标?

【问题讨论】:

  • 好吧,你说提取你有什么结果数据?它是一个Image对象,一个指针吗????
  • 您确定除了测试图标没有其他方法可以获取该状态信息吗?这是一件非常“不安全”的事情,因为图标大小和内容取决于所使用的 DPI 设置和颜色深度。

标签: c# process icons


【解决方案1】:

我假设您的意思是要检查图标本身的内容,就像在图像内容中一样。

如果是这种情况,那么您可以使用多个image comparison algorithms

但是,这可能有点矫枉过正。由于图标非常小,您可能需要确定一个像素或一组像素以检查其状态,因为您可能知道在给定图标的情况下它们将始终处于某种唯一状态.

【讨论】:

  • 好吧,我可能在我的 OP 中留下了一些不清楚的地方,让我试着澄清一下。我在系统托盘中有一个我无法控制的应用程序。它会根据其与设备的连接状态更改图标。检查设备的端口会导致多台机器上的系统锁定,我想不出其他方法来收集应用程序的当前状态,然后查看它的图标。该图标被我的应用程序覆盖,我想要一个状态“灯”指示程序是否正在与设备通信。
  • 这是我找到的获取图标 Icon.ExtractAssociatedIcon(theProcess.MainModule.FileName); 的方法也许不是最好的。但它得到了图标。我现在不知道检查它是哪个图标并从中确定状态。我希望有一种方法可以通过提取来识别图标的句柄名称或哈希值。也许不是。如果有人有更好的解决方案,请告诉我。
猜你喜欢
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 2010-10-26
  • 1970-01-01
相关资源
最近更新 更多