2011-07-28 20 views
2

WPF C#でプログラミングし、ProcessorID(または他のシステム識別子)を取得しようとしています。私はMSDN - System.Management Namespaceを読んだ。私は名前空間を追加しますが、それはManagementBaseObject Classを提供しません。WPFでシステム識別子を取得できません

using System.Management; 

/* code */ 
System.Management.(there is no ManagementBaseObject) 

System.ManagementはWPFではなくWinFormsでのみ使用されますか?

答えて

2

次のコードは、あなたがSystem.Managementへの参照を追加したことを考えると、あなたのプロセッサIDを与える:

public static string GetProcessorID() 
{ 
    var processorID = ""; 
    var query = "SELECT ProcessorId FROM Win32_Processor"; 

    var oManagementObjectSearcher = new ManagementObjectSearcher(query); 

    foreach (var oManagementObject in oManagementObjectSearcher.Get()) 
    { 
     processorID = (string)oManagementObject["ProcessorId"]; 
     break; 
    } 

    return processorID; 
} 
+0

なぜ静的を使用しますか? – KMC

+1

@KMC:あなたはそうする必要はありませんが、どのようなオブジェクト状態からも独立したメソッドなので意味があります。また、 'System.Management'名前空間は、あなたのアプリケーションがコンソール、Windowsフォーム、またはWPFアプリケーションであるかどうかとは完全に独立しています。 –

2

あなたはこの、System.CoreSystem.Management名前空間を持ついくつかの既存の種類があります(そのクラスのdocumentationで「アセンブリ」あたり)

2

System.Management.dll

への参照を追加する必要がありますなぜあなたはいくつかのタイプを見ているのです。

ManagementBaseObjectの場合は、System.Management.dllへの参照をプロジェクトに追加する必要があります。

+0

おかげで多くのことを、「System.Management.dll」必須でした。 –

関連する問題