2010-05-21 137 views
0

我试图在C#中制作一个程序来监视应用程序的处理器时间。我想在这个程序中有一个功能,其中任务栏图标实际上是一个表示处理器时间的数字(比如coretemp的内容)。我会如何去做这样的事情?如何在C#中为任务栏图标更改数值?

回答

2

您需要使用System.Drawing名称空间中的类。

创建一个Bitmap,使用Graphics.FromImage来绘制它,然后拨打Icon.FromHandle(myBitmap.GetHicon())
然后,您可以将图标设置为表单的Icon属性。

编辑:像这样:

using (var image = new Bitmap(16, 16)) 
using (var g = Graphics.FromImage(image)) { 
    g.DrawString(...); 
    myForm.Icon = Icon.FromHandle(image.GetHicon()); 
} 

您可以在定时器运行这个不断更新的图标。

你可以得到CPU的使用是这样的:

int usage; 
using (var cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total")) { 
    cpu.NextValue();   //First value is 0 
    usage = cpu.NextValue(); 
} 
+0

好了,所以如果我读这个权利,我会做这样的事情: 位图B =新位图(Graphics.FromImage(someImage) ); Icon.fromHandle(b.getHIcon()); 我想我现在唯一担心的是如何获取图像本身 - 是否有任何简单的方法告诉C#将处理器时间值转换为要使用的图像?我看到这个的方式,并纠正我,如果我错了,Graphics.FromImage()insinuates我不得不自己制作数字图标。 尽管如此,感谢所有帮助。 (抱歉,如果上面的代码很难阅读,我不确定我是否可以在评论中插入代码块。) – Waffles 2010-05-21 04:11:28

+0

哇,工作!非常感谢,我今天真的很了解这个。 :) – Waffles 2010-05-21 04:46:25

相关问题