این ادامه ای برای آموزش های دیگر من در زمینه ی نمایش اطلاعات سخت افزاری با استفاده از VB.NET است اما این بار تمامی اطلاعات سخت افزاری مانند bus , motherboard ,memory و صدا در VB.NET را شامل می شود.
حال بیاید تا آموزش را شروع کنیم !
بیاید با ساخت یک برنامه ی Windows Form برای این آموزش مراحل زیر را در ویژوال استودیو دنبال کنیم. به File بروید و بر روی گزینه ی New Project بروید و سپس Windows Application را انتخاب کنید.
پس از آن یک TabControl و یک DataGirdView اضافه کنید. باید رابط خود را به صورت زیر طراحی کنید :
حال به سراغ کدزنی برویم.
ابتدا یک VB Module به نام globals میسازیم.
باید یک public sub procedure به نام addRow بسازیم که سطر هایی به DataGridView اضافه می کند.
برای دستگاه Sound :
Public Function getSoundDeviceStructure() As DataTable Dim dt As New DataTable dt.Columns.Add(New DataColumn("Manufacturer")) dt.Columns.Add(New DataColumn("Name")) dt.Columns.Add(New DataColumn("PNPDeviceID")) dt.Columns.Add(New DataColumn("ProductName")) Return dt End Function Public Sub addSoundDevice(ByRef dt As DataTable, ByVal Manufacturer As String, ByVal Name As String, ByVal PNPDeviceID As String, ByVal ProductName As String) Dim dr As DataRow dr = dt.NewRow dr("Manufacturer") = Manufacturer dr("Name") = Name dr("PNPDeviceID") = PNPDeviceID dr("ProductName") = ProductName dt.Rows.Add(dr) End Sub
برای دستگاه memory :
Public Function getMemoryDeviceStructure() As DataTable Dim dt As New DataTable dt.Columns.Add(New DataColumn("DeviceID")) dt.Columns.Add(New DataColumn("EndingAddress")) dt.Columns.Add(New DataColumn("StartingAddress")) dt.Columns.Add(New DataColumn("SystemName")) Return dt End Function Public Sub addMemoryDevice(ByRef dt As DataTable, ByVal DeviceID As String, ByVal EndingAddress As String, ByVal StartingAddress As String, ByVal SystemName As String) Dim dr As DataRow dr = dt.NewRow dr("DeviceID") = DeviceID dr("EndingAddress") = EndingAddress dr("StartingAddress") = StartingAddress dr("SystemName") = SystemName dt.Rows.Add(dr) End Sub
برای دستگاه motherboard :
Public Function getMotherBoardDevice() As DataTable Dim dt As New DataTable dt.Columns.Add(New DataColumn("DeviceID")) dt.Columns.Add(New DataColumn("PrimaryBusType")) dt.Columns.Add(New DataColumn("SecondaryBusType")) Return dt End Function Public Sub addMotherBoardDevice(ByRef dt As DataTable, ByVal DeviceID As String, ByVal PrimaryBusType As String, ByVal SecondaryBusType As String) Dim dr As DataRow dr = dt.NewRow dr("DeviceID") = DeviceID dr("PrimaryBusType") = PrimaryBusType dr("SecondaryBusType") = SecondaryBusType dt.Rows.Add(dr) End Sub
برای دستگاه bus :
Public Function getBusStructure() As DataTable Dim dt As New DataTable dt.Columns.Add(New DataColumn("BusType")) dt.Columns.Add(New DataColumn("DeviceID")) dt.Columns.Add(New DataColumn("PNPDeviceID")) dt.Columns.Add(New DataColumn("SystemName")) Return dt End Function Public Sub addBus(ByRef dt As DataTable, ByVal BusType As String, ByVal DeviceID As String, ByVal PNPDeviceID As String, ByVal SystemName As String) Dim dr As DataRow dr = dt.NewRow dr("BusType") = BusType dr("DeviceID") = DeviceID dr("PNPDeviceID") = PNPDeviceID dr("SystemName") = SystemName dt.Rows.Add(dr) End Sub
سپس کدزنی برای form_load را انجام می دهیم :
برای نمایش دستگاه bus :
Try Dim searcher As New ManagementObjectSearcher( _ "root\CIMV2", _ "SELECT * FROM Win32_Bus") Dim dt As DataTable = globals.getBusStructure For Each queryObj As ManagementObject In searcher.Get() globals.addBus(dt, Convert.ToString(queryObj("BusType")), queryObj("DeviceID"), queryObj("PNPDeviceID"), queryObj("SystemName")) Next Me.DataGridView2.DataSource = dt Catch err As ManagementException MessageBox.Show("An error occurred while querying for WMI data: " & err.Message) End Try
برای نمایش دستگاه motherboard :
Try Dim searcher As New ManagementObjectSearcher( _ "root\CIMV2", _ "SELECT * FROM Win32_MotherboardDevice") Dim dt As DataTable = globals.getMotherBoardDevice For Each queryObj As ManagementObject In searcher.Get() globals.addMotherBoardDevice(dt, queryObj("DeviceID"), queryObj("PrimaryBusType"), queryObj("SecondaryBusType")) Next Me.DataGridView3.DataSource = dt Catch err As ManagementException MessageBox.Show("An error occurred while querying for WMI data: " & err.Message) End Try
برای نمایش دستگاه memory :
Try Dim searcher As New ManagementObjectSearcher( _ "root\CIMV2", _ "SELECT * FROM Win32_MemoryDevice") Dim dt As DataTable = globals.getMemoryDeviceStructure For Each queryObj As ManagementObject In searcher.Get() globals.addMemoryDevice(dt, queryObj("DeviceID"), Convert.ToString(queryObj("EndingAddress")), Convert.ToString(queryObj("StartingAddress")), queryObj("SystemName")) Next Me.DataGridView4.DataSource = dt Catch err As ManagementException MessageBox.Show("An error occurred while querying for WMI data: " & err.Message) End Try
برای نمایش دستگاه Sound :
Try Dim searcher As New ManagementObjectSearcher( _ "root\CIMV2", _ "SELECT * FROM Win32_SoundDevice") Dim dt As DataTable = globals.getSoundDeviceStructure For Each queryObj As ManagementObject In searcher.Get() globals.addSoundDevice(dt, queryObj("Manufacturer"), queryObj("Name"), queryObj("PNPDeviceID"), queryObj("ProductName")) Next Me.DataGridView5.DataSource = dt Catch err As ManagementException MessageBox.Show("An error occurred while querying for WMI data: " & err.Message) End Try
خروجی
سوالات و نظرات و پیشنهادات خود را با ما درمیان بگذارید.
با تشکر
هیچ دیدگاهی نوشته نشده است.