|
โค้ดชุดนี้ไม่มีอะไรมาก เกิดจากความขี้เกียจของแอดมินในการใช้ WMI Creator เพื่อจะมาดูรายการคุณสมบัติของอุปกรณ์แต่ละตัว ก็เลยเลือกเอาตัวหลักๆ เช่น Mainboard หรือ Disk Drive มามัดรวมกัน ... หากต้องการจะดูอุปกรณ์อื่นๆ ก็เลือกมาจาก WMI Creator เพิ่มเอาเองล่ะกันครับ
มาดูโค้ดฉบับเต็มกันเถอะ ...
- ' / --------------------------------------------------------------------------------
- ' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
- ' / eMail : thongkorn@hotmail.com
- ' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
- ' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
- ' / Facebook: https://www.facebook.com/commonindy (Worldwide)
- ' / MORE: http://www.g2gnet.com/webboard
- ' /
- ' / Purpose: Read Information with WMI (Windows Management Instrumental)
- ' / Microsoft Visual Basic .NET (2010)
- ' /
- ' / This is open source code under @Copyleft by Thongkorn Tubtimkrob.
- ' / You can modify and/or distribute without to inform the developer.
- ' / --------------------------------------------------------------------------------
- '// Don't forget add --> Reference --> System.Management
- Imports System.Management
- Public Class frmWMIInformation
- Private Sub frmWMIInformation_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- '// หากอยากได้ Class อื่นๆ ให้ไปดูจาก WMI Creator ครับ
- With cmbDevice
- .Items.Add("Win32_BaseBoard")
- .Items.Add("Win32_PhysicalMedia")
- .Items.Add("Win32_NetworkAdapter")
- .Items.Add("Win32_Processor")
- .Items.Add("Win32_DiskDrive")
- .Items.Add("Win32_DiskDrive USB Only")
- .SelectedIndex = 0
- End With
- End Sub
- Private Sub cmbDevice_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbDevice.SelectedIndexChanged
- Select Case cmbDevice.SelectedIndex
- Case 0, 1, 2, 3
- Call GetWMIInfo()
- Case 4, 5
- Call GetUsbInfo()
- End Select
- End Sub
- Private Sub GetWMIInfo()
- '// Initialize ListView Control
- With lvwData
- .Clear()
- .View = View.Details
- .GridLines = True
- .FullRowSelect = True
- .HideSelection = False
- .MultiSelect = False
- .Columns.Add("Properties", lvwData.Width \ 2 - 130)
- .Columns.Add("Values", lvwData.Width \ 2 + 100)
- End With
- Dim LV As ListViewItem
- Try
- '// Windows Query Language หรือ WQL
- Dim WmiQuery As String = "SELECT * FROM " & cmbDevice.Text
- Dim WmiSearcher As New ManagementObjectSearcher(WmiQuery)
- For Each info As ManagementObject In WmiSearcher.Get()
- For Each item As PropertyData In info.Properties()
- Try
- LV = lvwData.Items.Add("" & item.Name)
- LV.SubItems.Add("" & item.Value)
- Catch ex As Exception
- End Try
- Next
- Next
- Catch err As ManagementException
- MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
- End Try
- End Sub
- ' / --------------------------------------------------------------------------------
- ' / Function to read Usb Flash Information and return value of all drives.
- Sub GetUsbInfo()
- ' Initialize ListView Control
- With lvwData
- .Clear()
- .View = View.Details
- .GridLines = True
- .FullRowSelect = True
- .HideSelection = False
- .MultiSelect = False
- .Columns.Add("Properties", lvwData.Width \ 2 - 130)
- .Columns.Add("Values", lvwData.Width \ 2 + 100)
- End With
- Dim LV As ListViewItem
- Try
- '// Windows Query Language หรือ WQL
- Dim WmiQuery As String = "SELECT * FROM " & "Win32_DiskDrive"
- Dim WmiSearcher As New ManagementObjectSearcher(WmiQuery)
- For Each info As ManagementObject In WmiSearcher.Get()
- If cmbDevice.SelectedIndex = 4 Then
- '// Get only USB interface type.
- If info("InterfaceType") <> "USB" Then
- For Each item As PropertyData In info.Properties()
- Try
- LV = lvwData.Items.Add("" & item.Name)
- LV.SubItems.Add("" & item.Value)
- Catch ex As Exception
- End Try
- Next
- End If
- Else
- '// Get only USB interface type.
- If info("InterfaceType") = "USB" Then
- For Each item As PropertyData In info.Properties()
- Try
- LV = lvwData.Items.Add("" & item.Name)
- LV.SubItems.Add("" & item.Value)
- Catch ex As Exception
- End Try
- Next
- End If
- End If
- Next
- Catch err As ManagementException
- MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
- End Try
- End Sub
- Private Sub frmWMIInformation_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
- Me.Dispose()
- Application.Exit()
- End Sub
- End Class
คัดลอกไปที่คลิปบอร์ด
ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่ ...
|
ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง
คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน
x
|