我需要从本地和远程计算机检索RAM信息,我知道System.Management中的WMI,并且正在使用它,但是我的WMI问题是Win32_PhysicalMemory类有一个值我需要调用“MemoryType”,但它总是返回0或“未知”。
Win32_PhysicalMemory class (http://msdn.microsoft.com/en-us/library/aa394347%28v=vs.85%29.aspx)WMI硬件,获取RAM信息
我试图在3级不同的XP专业版的电脑使用Win32_PhysicalMemory来自C#和VBScript与管理员帐户,并得到了相同的0或“未知” MemoryType返回值。我使用的代码简单而简短,从网络上的多个源复制并粘贴,所以我确信它没有什么大问题。
我是错误地使用WMI还是有我可以使用的Windows API选择?
远程报告不是必需的。
具体而言,我需要计算它具有或可以具有的内存条数量,速度以及它使用的内存类型,DDR2,DDR3等,Win32_PhysicalMemory类给我所有这些,但类型除外的RAM。
ConnectionOptions connection = new ConnectionOptions();
connection.Impersonation = ImpersonationLevel.Impersonate;
ManagementScope scope = new ManagementScope("\\\\.\\root\\CIMV2", connection);
scope.Connect();
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_PhysicalMemory");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
foreach (ManagementObject queryObj in searcher.Get())
{
System.Diagnostics.Debug.WriteLine("-----------------------------------");
System.Diagnostics.Debug.WriteLine("Capacity: {0}", queryObj["Capacity"]);
System.Diagnostics.Debug.WriteLine("MemoryType: {0}", queryObj["MemoryType"]);
}
不,这仍然是准确的。并非所有生产的存储器都具有在其EEPROM中编码的必要信息。如果不存在,则无法读取。就那么简单。 – 2011-04-15 06:59:47
但是当我使用一个叫做CPU-Z的软件时,它给了我所有的信息,所以我知道它存储了一些东西。 – ambiguousPanda 2011-04-17 14:57:40
@ambiguous:是的,这也是我的想法。虽然科迪有一点,但它可能是CPU-Z存储他们根据序列号找到的信息。 – 2011-04-17 18:12:50