Hej jak wyciągnąć listę liczników wydajnościowych? głównie chce użyć WMI bo aplikacja będzie działać sieciowo, a używając klasy: PerformanceCounterCategory 1 KOD. jest to uciążliwe i nie zalecane.
w Kod 2 wyciagam liste wszystkich klas liczników i niemożna wyciągnąć samej nazwy np: Memory zamiast: Win32_PerfRawData_PerfOS_Memory wiem ze można pociąć stringa ale nie oto chodzi;p
KOD 1
PerformanceCounterCategory[] arrCategories =
PerformanceCounterCategory.GetCategories();
foreach (PerformanceCounterCategory g in arrCategories)
{
Console.WriteLine(g.CategoryName);
}
KOD 2
ManagementScope scope = new ManagementScope("\\root\\CIMV2");
ObjectQuery oq = new ObjectQuery("select * from meta_class");
ManagementObjectSearcher mos = new ManagementObjectSearcher(scope,oq);
foreach (ManagementObject mo in mos.Get())
{
foreach (QualifierData qd in mo.Qualifiers)
{
if (qd.Name.Equals("dynamic") || qd.Name.Equals("static"))
{
string txt = mo["__CLASS"].ToString();
if (txt.StartsWith("Win32_PerfRawData_"))
{
//tu zamieniam troche stringa by tak kiczowato nie wygladalo
cbLoad.Items.Add(txt.Replace("Win32_PerfRawData_", ""));
}
}
}
}
}