Hallo liebe Community!
Ich möchte mit C# die aktuelle CPU Auslastung auslesen. Dazu nutze ich folgenden Code:
ManagementClass class1 = new ManagementClass("Win32_Processor");
foreach (ManagementObject ob in class1.GetInstances())
{
foreach (PropertyData data in ob.Properties)
MessageBox.Show(data.Name + ": " + ob.GetPropertyValue(data.Name));
}
Jedoch wenn das Property "LoadPercentage" erscheint wird einfach nichts
ausgegeben. Irgend eine Idee?
MFG Wolf
Wer zuerst kommt malt zuerst, wer danach kommt malt drüber! 😁
Du kannst die CPU Auslastung auch ohne WMI auslesen:
public class CPU
{
private System.Diagnostics.PerformanceCounter perfCounter;
public CPU()
{
perfCounter = new System.Diagnostics.PerformanceCounter();
perfCounter.CategoryName = "Processor";
perfCounter.CounterName = "% Processor Time";
perfCounter.InstanceName = "_Total";
}
// gbt die CPU Auslastung des Rechners zurück
public int GetCpuLoad()
{
return Convert.ToInt16(perfCounter.NextValue());
}
}
Oder die CpuUsage-Klasse von Mentalis.org benutzen:
Mentalis.org / Useful Classes / CpuUsage
Sehr einfach zu handhaben, nutzt die WinAPI. Mentalis.org ist übrigens immer mal einen Blick Wert.
Grüße, JasonDelife.
Beim Programmieren löst man die Probleme, die man nicht hätte, programmierte man nicht.
@Mrdjoker
das Problem bei deinem Code Abschnitt ist, dass ich Admin Rechte dafür brauche. Somit fällt das raus.
MFG Wolf
Wer zuerst kommt malt zuerst, wer danach kommt malt drüber! 😁