如何获得处理器和主板ID?

时间:2010-03-12 22:06:57

标签: windows processor motherboard

我使用http://www.rgagnon.com/javadetails/java-0580.html中的代码获取主板ID,但结果为“null”。

  1. 怎么可能?

  2. 此外,我将代码修改为这样,以获得ProcessorId:

    "Set objWMIService = GetObject(\"winmgmts:\\\\.\\root\\cimv2\")\n"+
                 "Set colItems = objWMIService.ExecQuery _ \n"+
                 "   (\"Select * from Win32_Processor\") \n"+
                 "For Each objItem in colItems \n"+
                 "    Wscript.Echo objItem.ProcessorId \n"+
                 "    exit for  ' do the first cpu only! \n"+
                 "Next \n";
    
  3. 结果类似于:ProcessorId = BFEBFBFF00010676

    http://msdn.microsoft.com/en-us/library/aa389273%28VS.85%29.aspx上说:

      

    ProcessorId:描述处理器功能的处理器信息。对于x86类CPU,字段格式取决于CPUID指令的处理器支持。如果支持该指令,则该属性包含2(两)个DWORD格式的值。第一个是08h-0Bh的偏移量,它是CPUID指令返回的EAX值,输入EAX设置为1.第二个是0Ch-0Fh的偏移量,它是指令返回的EDX值。只有属性的前两个字节是重要的,并且在CPU复位时包含DX寄存器的内容 - 所有其他字节都设置为0(零),内容为DWORD格式。

    我不太明白;用简单的英语,它是唯一的还是只是这类处理器的数字,例如所有的Intel Core2 Duo P8400都有这个数字?

1 个答案:

答案 0 :(得分:3)

将eax设置为1,cpuid操作码将返回eax中的处理器类型,familly等,以及edx中的处理器功能。所以你得到的并不是唯一的东西,比如CPU序列号。