ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 2929|ตอบกลับ: 0

[VB.NET] การอ่านค่าคุณสมบัติทั้งหมดรวดเดียวของอุปกรณ์คอมพิวเตอร์ด้วย WMI

[คัดลอกลิงก์]

308

กระทู้

498

โพสต์

5971

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
5971




โค้ดชุดนี้ไม่มีอะไรมาก เกิดจากความขี้เกียจของแอดมินในการใช้ WMI Creator เพื่อจะมาดูรายการคุณสมบัติของอุปกรณ์แต่ละตัว ก็เลยเลือกเอาตัวหลักๆ เช่น Mainboard หรือ Disk Drive มามัดรวมกัน ... หากต้องการจะดูอุปกรณ์อื่นๆ ก็เลือกมาจาก WMI Creator เพิ่มเอาเองล่ะกันครับ


มาดูโค้ดฉบับเต็มกันเถอะ ...
  1. ' / --------------------------------------------------------------------------------
  2. ' / Developer : Mr.Surapon Yodsanga (Thongkorn Tubtimkrob)
  3. ' / eMail : thongkorn@hotmail.com
  4. ' / URL: http://www.g2gnet.com (Khon Kaen - Thailand)
  5. ' / Facebook: https://www.facebook.com/g2gnet (For Thailand)
  6. ' / Facebook: https://www.facebook.com/commonindy (Worldwide)
  7. ' / MORE: http://www.g2gnet.com/webboard
  8. ' /
  9. ' / Purpose: Read Information with WMI (Windows Management Instrumental)
  10. ' / Microsoft Visual Basic .NET (2010)
  11. ' /
  12. ' / This is open source code under @Copyleft by Thongkorn Tubtimkrob.
  13. ' / You can modify and/or distribute without to inform the developer.
  14. ' / --------------------------------------------------------------------------------

  15. '// Don't forget add --> Reference --> System.Management
  16. Imports System.Management

  17. Public Class frmWMIInformation

  18.     Private Sub frmWMIInformation_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  19.         '// หากอยากได้ Class อื่นๆ ให้ไปดูจาก WMI Creator ครับ
  20.         With cmbDevice
  21.             .Items.Add("Win32_BaseBoard")
  22.             .Items.Add("Win32_PhysicalMedia")
  23.             .Items.Add("Win32_NetworkAdapter")
  24.             .Items.Add("Win32_Processor")
  25.             .Items.Add("Win32_DiskDrive")
  26.             .Items.Add("Win32_DiskDrive USB Only")
  27.             .SelectedIndex = 0
  28.         End With
  29.     End Sub

  30.     Private Sub cmbDevice_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles cmbDevice.SelectedIndexChanged
  31.         Select Case cmbDevice.SelectedIndex
  32.             Case 0, 1, 2, 3
  33.                 Call GetWMIInfo()
  34.             Case 4, 5
  35.                 Call GetUsbInfo()
  36.         End Select
  37.     End Sub

  38.     Private Sub GetWMIInfo()
  39.         '// Initialize ListView Control
  40.         With lvwData
  41.             .Clear()
  42.             .View = View.Details
  43.             .GridLines = True
  44.             .FullRowSelect = True
  45.             .HideSelection = False
  46.             .MultiSelect = False
  47.             .Columns.Add("Properties", lvwData.Width \ 2 - 130)
  48.             .Columns.Add("Values", lvwData.Width \ 2 + 100)
  49.         End With
  50.         Dim LV As ListViewItem
  51.         Try
  52.             '// Windows Query Language หรือ WQL
  53.             Dim WmiQuery As String = "SELECT * FROM " & cmbDevice.Text
  54.             Dim WmiSearcher As New ManagementObjectSearcher(WmiQuery)
  55.             For Each info As ManagementObject In WmiSearcher.Get()
  56.                 For Each item As PropertyData In info.Properties()
  57.                     Try
  58.                         LV = lvwData.Items.Add("" & item.Name)
  59.                         LV.SubItems.Add("" & item.Value)
  60.                     Catch ex As Exception
  61.                     End Try
  62.                 Next
  63.             Next
  64.         Catch err As ManagementException
  65.             MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
  66.         End Try
  67.     End Sub

  68.     ' / --------------------------------------------------------------------------------
  69.     ' / Function to read Usb Flash Information and return value of all drives.
  70.     Sub GetUsbInfo()
  71.         ' Initialize ListView Control
  72.         With lvwData
  73.             .Clear()
  74.             .View = View.Details
  75.             .GridLines = True
  76.             .FullRowSelect = True
  77.             .HideSelection = False
  78.             .MultiSelect = False
  79.             .Columns.Add("Properties", lvwData.Width \ 2 - 130)
  80.             .Columns.Add("Values", lvwData.Width \ 2 + 100)
  81.         End With
  82.         Dim LV As ListViewItem
  83.         Try
  84.             '// Windows Query Language หรือ WQL
  85.             Dim WmiQuery As String = "SELECT * FROM " & "Win32_DiskDrive"
  86.             Dim WmiSearcher As New ManagementObjectSearcher(WmiQuery)
  87.             For Each info As ManagementObject In WmiSearcher.Get()
  88.                 If cmbDevice.SelectedIndex = 4 Then
  89.                     '// Get only USB interface type.
  90.                     If info("InterfaceType") <> "USB" Then
  91.                         For Each item As PropertyData In info.Properties()
  92.                             Try
  93.                                 LV = lvwData.Items.Add("" & item.Name)
  94.                                 LV.SubItems.Add("" & item.Value)
  95.                             Catch ex As Exception
  96.                             End Try
  97.                         Next
  98.                     End If
  99.                 Else
  100.                     '// Get only USB interface type.
  101.                     If info("InterfaceType") = "USB" Then
  102.                         For Each item As PropertyData In info.Properties()
  103.                             Try
  104.                                 LV = lvwData.Items.Add("" & item.Name)
  105.                                 LV.SubItems.Add("" & item.Value)
  106.                             Catch ex As Exception
  107.                             End Try
  108.                         Next
  109.                     End If
  110.                 End If
  111.             Next
  112.         Catch err As ManagementException
  113.             MessageBox.Show("An error occurred while querying for WMI data: " & err.Message)
  114.         End Try
  115.     End Sub

  116.     Private Sub frmWMIInformation_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
  117.         Me.Dispose()
  118.         Application.Exit()
  119.     End Sub

  120. End Class
คัดลอกไปที่คลิปบอร์ด


ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่ ...


ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-3-28 21:58 , Processed in 0.208691 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้