我在 VB.NET 中作業并嘗試自動化驅動程式安裝程序。我一直在尋找一種方法(如果可能的話?)來檢查設備管理器。有問題的驅動程式使其成為自己的部分/類別(因為沒有更好的術語。類似于設備管理器串列中的電池、監視器、處理器、埠等級別)。它是專有的,所以如果列出了“自定義驅動程式”部分/類別,我只想讓我的 WinForm 顯示/隱藏一些按鈕,如果驅動程式已經安裝。
我已經在專案資源中參考了 System.Management 并將命名空間添加Imports System.Management到我的代碼頂部,但我找不到一個甚至接近我想做的示例。
'Pseudo Code:
DIM name as String = "Custom Driver"
DIM DevMangr as New System.Management.Reader()
DIM Category as String = DevMangr.ReadLine()
Do While DevMangr.Peek <> -1
If Category.StartsWith(name)
Button1.Visible = False
Label1.Visible = True
Button2.Visible = True
Label2.Visible = False
End If
Loop
DevMan.Close()
uj5u.com熱心網友回復:
感謝 Jimi 在評論中的幫助,我能夠解決我的問題。任何感興趣的人的實際代碼如下:
Dim ConnOptions As New ConnectionOptions() With {.EnablePrivileges = True, .Timeout = EnumerationOptions.InfiniteTimeout}
Dim mOptions As New EnumerationOptions() With {.Rewindable = False, .ReturnImmediately = True, .DirectRead = True, .EnumerateDeep = False}
Dim mQuery As New SelectQuery("SELECT * FROM Win32_PnPEntity WHERE Name LIKE '%Custom Driver%'")
Dim mScope As New ManagementScope($"\\{Environment.MachineName}\root\CIMV2", ConnOptions)
mScope.Connect()
Using moSearcher As New ManagementObjectSearcher(mScope, mQuery, mOptions)
For Each Item As ManagementObject In moSearcher.[Get]()
Next
If moSearcher.Get.Count > 0 Then
Label1.Visible = True
End If
End Using
本質上,它的作用是檢查設備管理器中的“自定義驅動程式”,如果存在,請打開 Label1,這是關于驅動程式已全部設定的訊息。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490849.html
