WMI. Получить размер оперативной памяти и название ОС. Выбрасывается исключение FileNotFoundException - C#
Формулировка задачи:
При работе моей программы пользователь задает координаты, по которым в дальнейшем строится массив с данными. Проблема в том, что нельзя заранее сказать, хватит ли памяти на хранение этого массива, т.к. он очень большой.
Нашел в интернете код для получения размеров памяти, но он у меня почему-то не работает, при запуске выбрасывает исключение FileNotFoundException.
И в методе GetOsVersion(string ipAddress) я не понимаю как правильно задать параметр ipAddress.
public class MemorySize
{
private string totalPhysicalMemory;
private string totalVirtualMemory;
private string totalPageFileSpace;
private string availableVirtualMemory;
public string TotalPhysicalMemory { get { return totalPhysicalMemory; } }
public string TotalVirtualMemory { get { return totalVirtualMemory; } }
public string TotalPageFileSpace { get { return totalPageFileSpace; } }
public string AvailableVirtualMemory { get { return availableVirtualMemory; } }
private string OSProductName;
private string OSCurrentVersion;
public MemorySize()
{
GetSystemInfo();
GetOsVersion(null);
}
private void GetSystemInfo()
{
ObjectQuery winQuery = new ObjectQuery("SELECT * FROM Win32_ComputerSystem");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(winQuery);
foreach (ManagementObject item in searcher.Get())
{
totalPhysicalMemory = item["TotalPhysicalMemory"].ToString();
totalVirtualMemory = item["TotalVirtualMemory"].ToString();
totalPageFileSpace = item["TotalPageFileSpace"].ToString();
availableVirtualMemory = item["AvailableVirtualMemory"].ToString();
}
}
private void GetOsVersion(string ipAddress)
{
using (var reg = RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, ipAddress))
using (var key = reg.OpenSubKey(@"Software\Microsoft\Windows NT\CurrentVersion\"))
{
OSProductName = key.GetValue("ProductName").ToString() ?? "Unknown";
OSCurrentVersion = key.GetValue("CurrentVersion").ToString() ?? "Unknown";
}
}
}Решение задачи: «WMI. Получить размер оперативной памяти и название ОС. Выбрасывается исключение FileNotFoundException»
textual
Листинг программы
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct PixelColorDetails
{
public Byte blue;
public Byte green;
public Byte red;
}