Win32 시스템 정보 가져오기

교교 2014.03.05 17:02:02 *:

인증키 생성목적으로 보통 CPUID 나 MAC 을 사용하려고 하는데


이럴때 사용하는 함수이다.


VB6 시절에는 API 를 통해 구조체로 받아왔지만, .NET 에서는 프레임워크에서 해당 클래스를 제공하고 있다.


.NET 2.0, 1.1, 1.0 에서 지원한다고 MSDN 에서 설명하고 있다.

 

 

System.Management 를 참조해주어야 해당 클래스 오브젝트를 사용할수 있습니다.


ManagementClass 의 인스턴스에서 Management Object 를 가져오는 방법이 있으며,


ManagementObjectSearcher 를 통해 쿼리를 통해 가져오는 방법이 있습니다.

 

 


Imports SystemImports System.Management'Management Class 를 이용한 방법          Main(ByVal args() As String) As Integer        Dim c As New ManagementClass("Win32_Process")        Dim o As ManagementObject        For Each o In c.GetInstances()            Console.WriteLine( _                "Next instance of Win32_Process : {0}", o("Name"))        Next o'ManagementObjectSearcher 를 사용한 방법
        Dim search As New ManagementObjectSearcher("SELECT * FROM Win32_ComputerSystem")

        Dim info As ManagementObject
        For Each info In search.Get()
            txtOutput.Text = "Manufacturer: " & info("manufacturer").ToString() & vbCrLf
            txtOutput.Text &= "Model: " & info("model").ToString() & vbCrLf
            txtOutput.Text &= "System Type: " & info("systemtype").ToString() & vbCrLf
            txtOutput.Text &= "Total Physical Memory: " & _
                info("totalphysicalmemory").ToString() & vbCrLf
        Next

 


위 두가지 방법은 사용자가 사용하기에는 그렇게 크게 다른 방법은 아닙니다.


단 ObjectSearcher 는 좀더 확정적인 기능을 사용할 수 있습니다.

 

 

Management Object 로 가져올수 있는 개체의 콜렉션은 WMI 클래스 데이타를 가져올수 있습니다.


http://msdn.microsoft.com/library/kor. 있는 MSDN Library에서 WMI(Windows Management Instrumentation) 설명서의 "WIn32 Classes"에 해당 WMI 클래스들과 각 클래스의 데이타 구조로 가져올 수 있는 부분들이 설명되어있습니다.

 

 

자주쓰는 WMI Class


Win32_ComputerSystem Class : 하드웨어 정보 및 네트워크 정보등을 가져올수 있습니다.


Win32_Process : 프로세스 정보


Win32_LogicalDisk : Disk 하드웨어 정보 및 상태정보