課題があるのですが、どうすればいいのかわからない!
基本的に、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} と一致した場合、ユーザーが何をしたいかによってデバイスを無効/有効にするように指示しました。
それらを有効または無効にするために、この便利なプログラムはすべてここから準備ができていることがわかりました。
次に、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 として実行されます。
時間ができたら終わらせますが、必要なものはすべてここにあるはずです。
これが誰かを少し助けることを願っています!