【问题标题】:Is the Win32_Processor and Win32_NetworkAdapterConfiguration WMI methods available in Windows 8?Win32_Processor 和 Win32_NetworkAdapterConfiguration WMI 方法在 Windows 8 中是否可用?
【发布时间】:2012-04-04 21:38:01
【问题描述】:

我正在 Windows 8 消费者预览版中测试现有应用程序,它在启动时崩溃。日志文件表明它是在我对 CPU ID 和网卡详细信息进行一些验证的方法中。

为此,我正在调用

        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 8 server list of WMI classes and methods 和我正在使用的不在上面。但是,同一个站点也有一个Windows 7 WMI classes and methods 列表,而这些也不在其中! (即使它适用于 Windows 7 也没有问题)。

所以从外观上看,它是不受支持的。

ManagementClass 的 MSDN 指出方法 is still present in .NET 4.5。此外,this Microsoft resource 确实明确列出了 Win32_Processor 和 Win32_NetworkAdapterConfiguration,以及我需要的方法。

所以,从链接中,你可以看到我已经尝试对此进行研究,所以这是我试图解开这个谜团的最后一站。

我的应用程序最初是在 Visual Studio 2005 中创建的 .NET 2.0 解决方案。我已将 Visual Studio 2011 Beta 与最新的 SQL 2012 Express 一起安装到我的 Windows 8 Consumer Preview VM 中。我尝试将我的项目导入到这个 Visual Studio 中,但它没有加载它,告诉我它只支持 Metro 开发。因此,我无法在机器本身上调试此问题。

所以我的问题是这些类是否存在于 Windows 8 中?如果他们这样做了,那我做错了什么?如果他们不这样做,那么我需要找到一种方法来获取这些信息 - 但我想这是一个单独的问题 ;-)

【问题讨论】:

  • 我不敢相信他们会删除它们,快速测试的方法;下载 WMICC 并使用它的 GUI 来查看它们是否被列出/你所期望的microsoft.com/download/en/…
  • 旁注:Visual Studio 2011?有no such thing,甚至在测试版中也没有。目前有第 11 版测试版可用,但尚未公布最终产品名称。不过它很有可能被命名为 2012 年。
  • 嗨,谢谢,我使用了 WMICC,它确实在那里!我认为虽然它可能有所帮助,因为它检索到的处理器 ID 是空白的。也许是因为我在虚拟机中运行?至于 VS 2011/11 的命名,我深表歉意 - 无论您在 www.microsoft.com/express 上获得什么,都适用于 Windows 8 ;-)

标签: c# winapi wmi windows-8 visual-studio-2012


【解决方案1】:

我可以确认哪两个 WMI 类(Win32_Processor 和 Win32_NetworkAdapterConfiguration)在 Windows 8 Developer Preview 中存在和工作。

仅供参考,您推荐的列表的标题为Windows 8 Server WMI Classes with Methods,即WMI Classes which had methods.

用于检查WMI Delphi Code Creator的工具

【讨论】:

    【解决方案2】:

    这已得到回答,但不幸的是,仅在我原始帖子的 cmets 中,由 Alex K. 使用 http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8572 我能够识别这些方法确实存在,所以我认为这是一个编码问题,因为我的代码与我的代码略有不同由该实用程序生成。

    【讨论】:

      【解决方案3】:

      WMI 方法在 Windows 8 中可用,但在 Windows 8.1 中被删除,因此您也可以使用此代码分析 Windows 8.1 和 Windows Phone 8 上的各种网络指标:

      https://code.msdn.microsoft.com/windowsapps/network-information-sample-63aaa201

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-19
        • 1970-01-01
        相关资源
        最近更新 更多