我使用http://www.rgagnon.com/javadetails/java-0580.html中的代码获取主板ID,但结果为“null”。
怎么可能?
此外,我将代码修改为这样,以获得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上说:
ProcessorId:描述处理器功能的处理器信息。对于x86类CPU,字段格式取决于CPUID指令的处理器支持。如果支持该指令,则该属性包含2(两)个DWORD格式的值。第一个是08h-0Bh的偏移量,它是CPUID指令返回的EAX值,输入EAX设置为1.第二个是0Ch-0Fh的偏移量,它是指令返回的EDX值。只有属性的前两个字节是重要的,并且在CPU复位时包含DX寄存器的内容 - 所有其他字节都设置为0(零),内容为DWORD格式。
我不太明白;用简单的英语,它是唯一的还是只是这类处理器的数字,例如所有的Intel Core2 Duo P8400都有这个数字?
答案 0 :(得分:3)
将eax设置为1,cpuid操作码将返回eax中的处理器类型,familly等,以及edx中的处理器功能。所以你得到的并不是唯一的东西,比如CPU序列号。