2010-05-21 138 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

相關問題