禁用CD驱动器的使用(VB.NET)

禁用CD驱动器的使用(VB.NET),vb.net,cd,Vb.net,Cd,我有一个任务,不知道如何处理它 基本上,我想禁用电脑上的CD驱动器,这样我们的用户就不能使用它们了 不管怎样,这就是我想要开始的方式——最终我希望在系统托盘中有一个图标,只要您知道密码,就可以锁定和解锁CD驱动器 不过我需要一个开始的地方——有人知道如何在VB.net中禁用CD驱动器吗 任何帮助都将不胜感激 安德鲁我找到了这样做的方法 基本上,我需要循环查看设备管理器中的所有项目,如下所示: search = New System.Management.ManagementObjectSearc

我有一个任务,不知道如何处理它

基本上,我想禁用电脑上的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与{4D36E965-E325-11CE-BFC1-08002BE10318}匹配,这是CD/DVD播放机的Guid,我告诉它根据用户的意愿禁用/启用设备

为了启用或禁用它们,我发现这个方便的程序已经准备就绪

然后我简单地编辑了Form1.vb:

Imports System.Management
公开课表格1

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部分中的所有条目。。。但是我该怎么做呢?