Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用“获取CPU ID”;ManagementObjectCollection moc=mc.GetInstances()&引用;不';不行?_C#_Wpf - Fatal编程技术网

C# 使用“获取CPU ID”;ManagementObjectCollection moc=mc.GetInstances()&引用;不';不行?

C# 使用“获取CPU ID”;ManagementObjectCollection moc=mc.GetInstances()&引用;不';不行?,c#,wpf,C#,Wpf,我正在尝试使用以下代码获取唯一的CPU ID: private string getCpuId() { string cpuInfo = string.Empty; ManagementClass mc = new ManagementClass("win32_processor"); ManagementObjectCollection moc = mc.GetInstances(); foreach (Managemen

我正在尝试使用以下代码获取唯一的CPU ID:

private string getCpuId()
    {
        string cpuInfo = string.Empty;
        ManagementClass mc = new ManagementClass("win32_processor");
        ManagementObjectCollection moc = mc.GetInstances();
        foreach (ManagementObject mo in moc)
        {
            if (cpuInfo == "")
            {
                //Get only the first CPU's ID
                cpuInfo = mo.Properties["processorID"].Value.ToString();
                break;
            }
        }
        return cpuInfo;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
       MessageBox.Show(getCpuId());
    }
在一年的产品销售过程中,我和其他600多个不同的系统都工作得很好。唯一的问题是您必须以管理员身份运行应用程序,这没有问题。 问题是在2天前我第一次在Visual Studio 2013中构建应用程序时开始的

在VS 2013之前,我使用的是VS 2012。现在,如果我在VS 2013之外以管理员身份运行应用程序,它将运行,但在
按钮上单击
事件,应用程序将停止工作。已尝试调试,问题是这部分代码,如VS 2013所示:

ManagementObjectCollection moc = mc.GetInstances();
谨此致辞:

OutOfMemoryException未处理,System.Management.dll中发生类型为“System.OutOfMemoryException”的未处理异常

我搜索了很多,发现了类似的问题和错误,但没有一个像我一样


问题是Visual Studio 2013对我的应用程序做了什么,导致它无法在Visual Studio运行时运行(我是说从调试文件夹)?或者是什么导致了这个错误,我该如何解决这个问题?我不想切换到VS2012,因此任何帮助都将不胜感激

问题是Visual Studio安装,重新安装后问题得到解决。除了我做了windows 7更新之外

以管理员身份显式运行Visual Studio是否有帮助(即右键单击链接并选择
以管理员身份运行
)?System.Management使用WMI,后者使用COM。E_OUTOFMEMORY并不一定意味着程序内存不足,它还可能意味着WMI提供程序或内核在分配内存以外的资源时遇到问题。重新启动计算机并重试。感谢您的所有回复。但以管理员身份明确运行VisualStudio并重新启动计算机并没有帮助。通过更新windows7解决了此问题。我不知道它是从哪里来的,它是如何解决的。我总共删除了所有Microsoft产品,特别是sql server 2012和所有visual studio组件加框架,然后重新安装了visual studio 2013。在那之后,我更新了windows7。所以问题解决了,没有任何线索。你可以从CPUID指令中获取处理器的序列号,但唯一支持该功能的CPU是奔腾III,没有AMD处理器支持它,也没有比奔腾III更新的英特尔处理器支持它。您将需要使用其他内容作为唯一id。