نمایش اطلاعات سخت افزاری در VB.NET

VB.NET

این ادامه ای برای آموزش های دیگر من در زمینه ی نمایش اطلاعات سخت افزاری با استفاده از VB.NET است اما این بار تمامی اطلاعات سخت افزاری مانند bus , motherboard ,memory و صدا در VB.NET را شامل می شود.

حال بیاید تا آموزش را شروع کنیم !

بیاید با ساخت یک برنامه ی Windows Form برای این آموزش مراحل زیر را در ویژوال استودیو دنبال کنیم. به File بروید و بر روی گزینه ی New Project بروید و سپس Windows Application را انتخاب کنید.

پس از آن یک TabControl و یک DataGirdView اضافه کنید. باید رابط خود را به صورت زیر طراحی کنید :

VB.NET

حال به سراغ کدزنی برویم.

ابتدا یک 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

 

خروجی

VB.NETVB.NETVB.NETVB.NET

سوالات و نظرات و پیشنهادات خود را با ما درمیان بگذارید.

با تشکر

داریوش فرخی

داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

ما یک پرسشنامه‌ی کوچولو داریم، که قول میدیم وقتتون رو خیلی نمی‌گیره، ولی کلی به ما کمک می‌کنه، چون هم assessment مونه ,و هم شما به ما در این زمینه کمک میکنید.بزن بریم