代码之家  ›  专栏  ›  技术社区  ›  Frank

如何获取处理器和主板Id?

  •  2
  • Frank  · 技术社区  · 14 年前

    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";
      

    ProcessorId = BFEBFBFF00010676

    在…上 http://msdn.microsoft.com/en-us/library/aa389273%28VS.85%29.aspx 上面写着:

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

    1 回复  |  直到 14 年前
        1
  •  3
  •   Macmade    14 年前

    当eax设置为1时,cpuid操作码将在eax中返回处理器类型、系列等,并在edx中返回处理器特性。所以你得到的不是唯一的,比如CPU序列号。