C# Win32_处理器和Win32_NetworkAdapterConfiguration WMI方法在Windows 8中可用吗?
我正在Windows8消费者预览版中测试一个现有应用程序,它在启动时崩溃。日志文件表明它是在我对CPU ID和网卡详细信息进行验证的方法中 为此,我打电话来C# Win32_处理器和Win32_NetworkAdapterConfiguration WMI方法在Windows 8中可用吗?,c#,winapi,wmi,windows-8,visual-studio-2012,C#,Winapi,Wmi,Windows 8,Visual Studio 2012,我正在Windows8消费者预览版中测试一个现有应用程序,它在启动时崩溃。日志文件表明它是在我对CPU ID和网卡详细信息进行验证的方法中 为此,我打电话来 ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc = mc.GetInstances(); foreach (ManagementObject mo in mo
ManagementClass mc = new ManagementClass("Win32_Processor");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (cpuInfo.Length == 0)
{
// only return cpuInfo from first CPU
cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
}
}
(请注意,此应用程序在Windows 7及更早版本上运行良好)
然后,我使用相同的语法连接到Win32_NetworkAdapterConfiguration并获取IPEnabled、IPAddress[]和MACAddress属性
但在这里的某个地方,它正在崩溃
我已经试着研究过了,发现下面的和我正在使用的都不在上面。然而,同一个站点也有一个列表,而这些也不在其中!(即使它在Windows 7上工作也没有问题)
因此,从这个角度来看,它是不受支持的
ManagementClass的MSDN指示该方法。此外,还明确列出了Win32_处理器和Win32_网络适配器配置,以及我需要的方法
所以,从这些链接中,你可以看到我试图研究这个,所以这是我试图解开这个谜团的最后一站
我的应用程序最初是Visual Studio 2005中创建的.NET 2.0解决方案。我已将Visual Studio 2011 Beta安装到我的Windows 8消费者预览虚拟机中,以及最新的SQL 2012 Express。我已经尝试将我的项目导入到这个VisualStudio中,但它没有加载它,告诉我它只支持Metro开发。因此,我无法在机器本身上调试此问题
所以我的问题是Windows8中是否存在这些类?如果他们这样做了,那么我做错了什么?如果他们没有,那么我需要找到一种方法来获取这些信息——但我想这是一个单独的问题;-) 我可以在Windows 8开发者预览中确认哪两个WMI类(Win32_Processor和Win32_NetworkAdapterConfiguration)存在并在其下工作 FYI您的refear具有标题的列表,这意味着
WMI类具有方法。
用于检查此问题的工具已得到回答,但不幸的是,仅在我的原始帖子Alex K的评论中。使用此工具,我能够识别这些方法确实存在,因此我认为这是一个编码问题,因为我的代码与该工具生成的代码略有不同。WMI方法在Windows 8中可用,但已在Windows 8.1中删除,因此,您也可以使用此代码分析Windows 8.1和Windows Phone 8上的各种网络指标:
我不敢相信他们会移除它们,这是一种快速的测试方法;下载WMICC并使用其GUI查看它们是否已列出/您的期望旁注:Visual Studio 2011?甚至在测试版中都没有。目前有一个版本11测试版,但没有最终的产品名称已经宣布。很有可能被命名为2012。嗨,谢谢,我使用了WMICC,它确实在那里!我认为这可能有所帮助,因为它检索到的处理器ID是空的。也许是因为我在虚拟机中运行?关于VS 2011/11命名,我很抱歉-无论您在www.microsoft.com/express上看到什么,都是针对Windows 8;-)