我有一個任務,不知道如何解決它!禁用使用光盤驅動器(VB.NET)
基本上,我想禁用PC上的CD驅動器,所以我們的用戶不能使用它們。
這就是我想要開始的方式 - 最終我想要一個系統托盤中的圖標,允許您鎖定和解鎖CD驅動器並提供您知道的密碼。
我需要開始的地方,但有人知道如何禁用在VB.net中使用的CD驅動器?
任何幫助,將不勝感激。
安德魯
我有一個任務,不知道如何解決它!禁用使用光盤驅動器(VB.NET)
基本上,我想禁用PC上的CD驅動器,所以我們的用戶不能使用它們。
這就是我想要開始的方式 - 最終我想要一個系統托盤中的圖標,允許您鎖定和解鎖CD驅動器並提供您知道的密碼。
我需要開始的地方,但有人知道如何禁用在VB.net中使用的CD驅動器?
任何幫助,將不勝感激。
安德魯
我找到了一種方法來做到這一點。
基本上我需要依次通過在設備管理器中的所有項目是這樣的:
search = New System.Management.ManagementObjectSearcher("SELECT * From Win32_PnPEntity")
For Each info In search.Get()
' Go through each device detected.
Next
我然後拿着的DeviceID和ClassGuid部分。
如果Guid與CD/DVD播放機的GUID匹配{4D36E965-E325-11CE-BFC1-08002BE10318},我告訴它禁用/啓用取決於用戶想要做什麼的設備。
要啓用或禁用它們,我發現這個方便的程序都準備好去from here。
然後,我只不過是編輯Form1.vb的是:
Imports System.Management
公共類Form1中
Private Sub btnEnable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnable.Click
getCdDrives("Enable")
End Sub
Private Sub btnDisable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisable.Click
getCdDrives("Diable")
End Sub
Public Function getCdDrives(ByVal EnableOrDisable As String) As Boolean
If InputBox("password") = "password" Then
Try
Dim info As System.Management.ManagementObject
Dim search As System.Management.ManagementObjectSearcher
Dim deviceGuid As String
Dim deviceType As String
Dim cameraIsSeenByWindows As Boolean = False
Dim showDebugPrompts As Boolean = False
Dim actualGuid As Guid
search = New System.Management.ManagementObjectSearcher("SELECT * From Win32_PnPEntity")
For Each info In search.Get()
' Go through each device detected.
deviceType = CType(info("DeviceID"), String)
deviceGuid = CType(info("ClassGuid"), String)
If deviceGuid = "{4D36E965-E325-11CE-BFC1-08002BE10318}" Then
actualGuid = New Guid(deviceGuid)
If EnableOrDisable = "Enable" Then
DeviceHelper.SetDeviceEnabled(actualGuid, deviceType, True)
Else
DeviceHelper.SetDeviceEnabled(actualGuid, deviceType, False)
End If
End If
Next
If EnableOrDisable = "Enable" Then
btnDisable.Enabled = True
btnEnable.Enabled = False
Else
btnDisable.Enabled = False
btnEnable.Enabled = True
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Else
MsgBox("Oooh Va Vu!!")
End If
End Function
末級
這也就那麼通過在設備管理器中的CD/DVD驅動器環路和禁用/啓用它們。
我還沒有整理代碼 - 我需要將腳本作爲一個線程來運行,因爲它在執行它的時候會掛起。
我還打算讓程序計算出CD驅動器在使用計時器事件時的狀態 - 然後相應地報告回來......然後我需要讓它在沒有窗體的系統托盤中運行,最後讓它像運行桌面交互的LSA一樣運行。
當我得到片刻時,我會完成它 - 但你需要的一切應該在這裏。
希望這可以幫助別人一點點!
我在想,有一種方法可能是禁用設備管理器中的設備 - 只需禁用DVD/CD-ROM中的所有條目......但我該怎麼做? – 2010-02-15 16:27:55