2009-08-11 6 views
3

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

あなたが知っている気にした場合の状況:

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

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

環境変数が設定されている場合、WMIクエリは不要です。アプリケーションは正常に動作します。しかし、環境変数が存在しない場合、WMIクエリを作成するために必要なときに、アプリケーションの一部のコンポーネントが起動に失敗します。私は、WMI呼び出しのいくつかの副作用がある可能性があると考えています(プロセスごとに最大で1回しか発生しません)。

答えて

1

どうやら残念なことですこれを実行する方法は、ありません。あなたが使用することができビスタ+で

-2

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

cpuid GNU program

+0

を。 – Valentein

+0

CPUID命令はシリアル# – steve

+1

を提供します。興味のあるマザーボードです。__cpuidは、アプリケーションに関するものではないCPUに関する情報を提供します。 – Valentein

2

GetSystemFirmwareTable SMBIOSテーブルにアクセスしてそれらを解析するためのAPI [おそらく利用可能な]シリアル番号やその他の識別文字列と値を取得する。

特にあなたがベンダーとS/Nを含むマザーボードのデータにアクセスすることができます:私はCPU情報に興味がないんだけど、私は、マザーボードの製造元とシリアル番号を識別できるようにする必要があり

  Intel Corporation 
      DZ77BH-55K 
      AAG39018-400 
      BQBH206600DT 
関連する問題