iT邦幫忙

0

[VS 2017]C#的Performance Counter不能用......

我想要問一個問題,由於我想要製作一個App來偵測像是CPU溫度啦,RAM使用率等等,但是都沒辦法用,就說這個項目沒有存在啦等等,假如把Performance Counter 從工具箱裡拖出來,App連開都不能開,用程式碼寫,原本應該是幾%幾%這樣的,卻是便是System.Diagnostic.PerformanceCounter
查過網路了,要把System.Diagnostic打開,但是卻沒辦法用,一樣...
還有,從工具箱拖出來的Performance Counter的Category Name 都沒有下拉式選單...網看網路上都有ㄟ???

==========圖片==========
http://imgur.com/8sxx9bR
http://imgur.com/XDxWPz5

1 個回答

0
marlin12
iT邦新手 2 級 ‧ 2018-03-28 22:41:12

呼叫PerformanceCounter class的categoryName、counterName之類的列表,是硬件的資料(不是.net framework的資料),當然不會出現在工具箱的選單內。但是,這些資料是可以在windows的[效能監視器]內看到。
https://ithelp.ithome.com.tw/upload/images/20180328/20109232gmta2AUrnl.jpg
至於要偵測像是CPU溫度,就比較困難,原因是這些資料是chipset製造商自定義,然後經過WMI上傳的。
下面有2個例子,可以給你參考。
A Simple Performance Counter Application
CPU Temperature & System Information

看更多先前的回應...收起先前的回應...

我知道...他是從硬體抓的...但是我用那個第一個A Simple Performance Counter Application那個我試過啦,跟我先前用過的依樣,像是我用RamUsage.Text = ramCounter.ToString() + MB
他那個ramCounter.ToString()就會變成System.Diagnostic.PerformanceCounter...

我有試過System.Management,但是溫度就一直在29.8 度...

marlin12 iT邦新手 2 級 ‧ 2018-03-28 23:48:14 檢舉

應該用 RamUsage.Text = ramCounter.NextValue().ToString() + "%";

至於CPU温度,可以把你那段code放上來嗎?

好...等我一下下

marlin12 iT邦新手 2 級 ‧ 2018-03-30 00:13:48 檢舉

你的代碼基本上跟WMI code creater相同,我用[管理員權限]在電腦試過,也是不能取得CPU温度。
但是,我試過CPU Temperature & System Information的方法,是可以取得大部份的WMI資料(包括CPU温度),但是必須用[管理員權限]來運行。
其實,它的方法是從Open hardware monitor改過來的,這個dll是很靈活的,可以讀取一個或多個WMI class的資料。

歐歐,我有用管理員權限了。。過兩天我試試,可行的話就上最佳解答囉xDDDD

歐歐,我有用管理員權限了。。過兩天我試試,可行的話就上最佳解答囉xDDDD

marlin12 iT邦新手 2 級 ‧ 2018-03-31 20:42:02 檢舉

[上最佳解答]就不需要啦!我答問題不是為了這些虛銜的。

可以用就好啦! 也幫助其他人!

我要發表回答

立即登入回答