FAQ: How do I retrieve hardware device information on a machine via WMI?
Locked
-
Friday, April 10, 2009 2:31 PM
How do I retrieve hardware device information on a machine via WMI?
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.
All Replies
-
Friday, April 10, 2009 2:34 PM
First, Add Reference System.Management.dll to your project and import system.Management namespace.
Code sample: Retrieve device info from hard disk, motherboard and CPU.
Prerequisites: Drag&drop Button1, Button2, Button3 and ListBox1 onto Form1.
Imports System.Management Public Class Form1 'Retrieve HardDisk information Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ' Get the hardware Model anf Type info Dim searcher As ManagementObjectSearcher = _ New ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive") For Each wmi_HD As ManagementObject In searcher.Get() ListBox1.Items.Add("Model:" & vbTab & wmi_HD("Model").ToString()) ListBox1.Items.Add("Type:" & vbTab & wmi_HD("InterfaceType").ToString()) Next wmi_HD ' Get the hardware SerialNumber info searcher = New ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia") For Each wmi_HD As ManagementObject In searcher.Get() If wmi_HD("SerialNumber") Is Nothing Then ListBox1.Items.Add("Serial No:" & vbTab & "None") Else ListBox1.Items.Add("Serial No:" & vbTab & wmi_HD("SerialNumber").ToString()) End If Next wmi_HD End Sub 'Retrieve MortherBoard information Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click Dim searcher As ManagementObjectSearcher = _ New ManagementObjectSearcher("select * from Win32_BaseBoard") For Each oReturn As ManagementObject In searcher.Get() ListBox1.Items.Add( _ "MortherBoard Serial No." & Constants.vbTab & ": " & oReturn("SerialNumber").ToString) Next oReturn End Sub 'Retrieve CPU information Private Sub Button3_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button3.Click Dim searcher As ManagementObjectSearcher = _ New ManagementObjectSearcher("select * from Win32_Processor") For Each oReturn As ManagementObject In searcher.Get() ListBox1.Items.Add("CPU ID" & Constants.vbTab & ": " & oReturn("ProcessorId").ToString) Next oReturn End Sub End Class
Additionally, the WMI Code Creator tool is helpful.The WMI Code Creator tool allows you to generate VBScript, C#, and VB .NET code that uses WMI to complete a management task such as querying for management data, executing a method from a WMI class, or receiving event notifications using WMI.
Related threads:
http://social.msdn.microsoft.com/Forums/en/vbgeneral/thread/8724deae-d9d9-4cd9-829b-ef4eefcb4617/
For more FAQ about Visual Basic .NET General, please see Visual Basic .NET General FAQ
Please remember to mark the replies as answers if they help and unmark them if they provide no help.
Welcome to the All-In-One Code Framework! If you have any feedback, please tell us.- Marked As Answer by Xiaoyun Li – MSFT Friday, April 10, 2009 2:39 PM

