3

我尝试使用System.Management命名空间中的几个类获取一些系统信息,但任何尝试使用ManagementObjectSearcherManagementObjectCollection集合项都会导致FileNotFoundException

下面我介绍有问题的代码:

    public static string GetProcessorID() {
        var processorID = "";
        var query = "SELECT ProcessorId FROM Win32_Processor";
        var oManagementObjectSearcher = new ManagementObjectSearcher(query);

        foreach (var oManagementObject in oManagementObjectSearcher.Get()) {
            processorID = (string)oManagementObject["ProcessorId"];
            break;
        }

        return processorID;
    }

尝试从集合中获取下一项时,在“foreach”行中引发异常。

在装有windows xp 专业版 sp3Visual Studio 2008 专业版的机器上观察到。我想这可能是我的 cpu 的问题,它是英特尔双核- 其他具有类似环境的机器上的相同程序可以完美运行。这些机器之间的主要区别是cpu。

MACAddress 和 SystemDrive 等其他参数提供了相同的问题,这表明它可能是软件问题(WMI?)

此处描述了非常相似的问题-> http://news.softpedia.com/news/XP-SP3-Win32-Processor-Class-Labels-Intel-Core-2-Duo-CPUs-Incorectly-90201.shtml但解决方案没有解决它。

有任何想法吗?提前致谢。

大卫

4

2 回答 2

0

我知道我的回答有点晚了,但是因为这是我搜索错误时在谷歌上的第一次点击,所以我想我放了一个指向为我解决它的主题的链接。

System.Management.ManagementException:未找到

基本上你要做的就是用 WMI 解决你的错误。

于 2013-02-06T10:28:28.457 回答
-1

我也有同样的问题。它不会在单词上崩溃,而是在

oManagementObjectSearcher.Get().

检查堆栈跟踪:

System.IO.FileNotFoundException - Nie można odnaleźć określonego modułu. (Wyjątek od HRESULT: 0x8007007E)
    Stack trace:
w System.Management.ThreadDispatch.Start()
   w System.Management.ManagementScope.Initialize()
   w System.Management.ManagementObjectSearcher.Initialize()
   w System.Management.ManagementObjectSearcher.Get()
[...]

当我移动到我的电脑/右键单击/管理/服务/WMI 配置/右键单击/属性-> 我收到消息“Win32:找不到模块”有错误

于 2012-06-15T04:56:02.270 回答