인증키 생성목적으로 보통 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 하드웨어 정보 및 상태정보