2011-07-28 2 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 Forms 또는 WPF 애플리케이션인지 여부와 완전히 독립적입니다. –

2

당신은 (즉, 클래스의 documentation에서 "총회"당) System.Management.dll

2

System.CoreSystem.Management 네임 스페이스와 기존의 일부 종류가 있습니다,이 참조를 추가해야 왜 당신은 몇몇 유형을보고 있습니다.

그러나 ManagementBaseObject의 경우 System.Management.dll에 대한 참조를 프로젝트에 추가해야합니다.

+0

고마워 '를 System.Management.dll'필수였다. –

관련 문제