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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д