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