3

複数のプロセスのアプリケーションで、マザーボード ID (シリアル、製造など) にアクセスする必要があります。 WMI を使用してこれを正常に照会できましたが、別の方法を探しています。

状況を知りたい場合:

ハードウェア構成によって、または特定の環境変数が設定されている場合 (テスト目的)、アプリケーションの動作が異なります。

bool IsVideoCardDisplay = ( getenv("Z_VI_DISPLAY") || !QueryWmiForSpecialBoard() ) ? false : true;

環境変数が設定されている場合、WMI クエリは必要ありません。アプリケーションは正常に動作します。ただし、環境変数が存在しない場合、WMI クエリを作成する必要があるときに、アプリの一部のコンポーネントが起動に失敗します。WMI 呼び出しのいくつかの副作用があると思われます (プロセスごとに最大 1 回しか発生しません。これが、別の方法を探している理由です。

4

3 に答える 3

2

Vista+ では、GetSystemFirmwareTableAPI を使用して SMBIOS テーブルにアクセスし、それらを解析して [おそらく利用可能な] シリアル番号およびその他の識別文字列と値を取得できます。

特に、ベンダーや S/N などのマザーボード データにアクセスできます。

            Intel Corporation
            DZ77BH-55K
            AAG39018-400
            BQBH206600DT
于 2012-12-05T15:42:02.590 に答える
1

残念ながら、これを行う方法はないようです。

于 2009-08-25T20:32:10.770 に答える
-2

その情報は、CPUID 命令によって提供されます。次のリンクは、この命令を使用して命令の実行結果を公開するプログラムを提供します。

cpuid GNU プログラム

于 2009-08-11T21:10:34.377 に答える