2

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には次のように書かれています

ProcessorId:プロセッサの機能を説明するプロセッサ情報。x86 クラ​​スの CPU の場合、フィールド形式は CPUID 命令のプロセッサ サポートによって異なります。命令がサポートされている場合、プロパティには 2 つの DWORD 形式の値が含まれます。1 つ目は 08h-0Bh のオフセットで、CPUID 命令が入力 EAX を 1 に設定して返す EAX 値です。2 つ目は 0Ch-0Fh のオフセットで、命令が返す EDX 値です。プロパティの最初の 2 バイトのみが意味を持ち、CPU リセット時の DX レジスタの内容を含みます。その他はすべて 0 (ゼロ) に設定され、内容は DWORD 形式です。

よくわかりません。平易な英語で、それはこのクラスのプロセッサの一意の番号ですか、それとも単なる番号ですか?たとえば、すべての Intel Core2 Duo P8400 はこの番号を持ちますか?

4

1 に答える 1

3

eax を 1 に設定すると、cpuid オペコードはプロセッサの種類、ファミリなどを eax で返し、プロセッサの機能を edx で返します。したがって、得られるものは、CPU シリアル番号のような固有のものではありません。

于 2010-03-12T22:29:48.703 に答える