Это, вероятно, не лучший способ, но в настоящее время я извлекаю объем оперативной памяти на машине, используя:
manageObjSearch.Query = new ObjectQuery("SELECT TotalVisibleMemorySize FROM Win32_OperatingSystem");
manageObjCol = manageObjSearch.Get();
foreach (ManagementObject mo in manageObjCol)
sizeInKilobytes = Convert.ToInt64(mo["TotalVisibleMemorySize"]);
Это работает хорошо и хорошо, но я чувствую, что мог бы делать это более напрямую и без foreach для одного элемента, но я не могу понять, как индексировать ManagementObjectCollection
Я хочу сделать что-то вроде этого:
ManagementObject mo = new ManagementObject("Win32_OperatingSystem.TotalVisibleMemorySize")
mo.Get();
Console.WriteLine(mo["TotalVisibleMemorySize"].ToString())
или, может быть, даже что-то вроде
ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
Console.WriteLine(mc.GetPropertyValue("TotalVisibleMemorySize").ToString());
Я просто не могу понять это. Есть идеи?