Windowsマシンからパフォーマンスデータを収集できる小さなソフトウェアアプリを作成しようとしています。
これが私が使用するコードの一部であり、PrintScreenが正しい番号を教えてくれません。コードのどこが間違っているのか、コードのスケールが正しくないのはなぜか教えてください(デフォルトのスケールは1です)
PrintScreen: http: //postimage.org/image/6za0g7e4t/
ManagementScope oMs = new System.Management.ManagementScope("root\\cimv2");
//Inventory
ObjectQuery InventQuery = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
ManagementObjectSearcher Inventsearcher = new ManagementObjectSearcher(oMs, InventQuery);
ManagementObjectCollection InventCollection = Inventsearcher.Get();
foreach (ManagementObject mgt in InventCollection)
{
outBox.AppendText(mgt["csname"].ToString() + "\n");
}
//Performance
//ObjectQuery PerfQuery = new ObjectQuery("SELECT * FROM Win32_PerfRawData_PerfDisk_PhysicalDisk");
ObjectQuery PerfQuery = new ObjectQuery("SELECT * FROM Win32_PerfRawData_PerfDisk_LogicalDisk");
ManagementObjectSearcher Perfsearcher = new ManagementObjectSearcher(oMs, PerfQuery);
ManagementObjectCollection PerfCollection = Perfsearcher.Get();
foreach (ManagementObject mgt in PerfCollection)
{
mgt.SetPropertyQualifierValue("DiskWritesPerSec", "DefaultScale", ScaleBox.Text);
mgt.SetPropertyQualifierValue("DiskReadsPerSec", "DefaultScale", ScaleBox.Text);
outBox.AppendText("Write IOps: " + mgt["Name"].ToString() + " ");
outBox.AppendText("Write IOps: " + mgt["DiskWritesPerSec"].ToString() + " ");
outBox.AppendText("Read IOps: " + mgt["DiskReadsPerSec"].ToString() + "\n");
}