vb.netusb控制 vbnet usercontrol
如何VB调用API实现光驱,USB的禁用
禁用U盘和移动硬盘
专注于为中小企业提供网站制作、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业望江免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
方法一,BIOS设置法(快刀斩乱麻法)
进入BIOS设置,选择“Integrated Peripherals”选项,展开后将“USB 1.1 Controller”和“USB 2.0 Contr01ler”选项的属性设置为“Disableed”,即可禁用USB接口。最后别忘记给BIOS设置上一个密码,这样他人就无法通过修改注册表解“锁”上述设备了。
注意:这个方法是完全禁止了USB接口,也就是说各种USB接口的设备均不能用了,当然也包括了U盘和移动盘。由于此法过于霸道,请慎用。
方法二,禁止闪盘或移动硬盘的启动(适用于Windows XP/2000/2003)
打开注册表编辑器,依次展开如下分支[HKEY_LOCAL_MACHINE\SYSTEM\CurrentCntrolSet\Services\USBSTOR],在右侧的窗格中找到名为“Start”的DWORD值,双击,在弹出的编辑对话框中将其数值数据修改为十六位进制数值“4”。点“确定”按钮并关闭注册表编辑器,重新启动计算机,使设置生效。重启后,当有人将USB存储设备连接到计算机时,虽然USB设备上的指示灯在正常闪烁,但在资源管理器当中就是无法找到其盘符,因此也就无法使用USB设备了。
方法三,隐藏盘符和禁止查看(适用于Windows系统)
打开注册表编辑器,依次展开如下分支[HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\Ploicies\Explorer],新建二进制值“NoDrives”,其缺省值均是00 00 00 00,表示不隐藏任何驱动器。键值由四个字节组成,每个字节的每一位(bit)对应从A:到Z:的一个盘,当相应位为1时,“我的电脑”中相应的驱动器就被隐藏了。第一个字节代表从A到H的8个盘,即01为A,02为B,04为C……依次类推,第二个字节代表I到P,第三个字节代表Q到X,第四个字节代表Y和Z。比如要关闭C盘,将键值改为04 00 00 00;要关闭D盘,则改为08 00 00 00,若要关闭C盘和D盘,则改为0C 00 00 00(C是十六进制,转成十进制就是12)。
理解了原理后,下面以我的电脑为例说明如何操作:我的电脑有一个软驱、一个硬盘(5个分区)、一个光驱,盘符分布是这样的:A:(3.5软盘)、C:、D:、E:、F:、G:、H:(光盘),所以我的“NoDrives”值为“02 ff ff ff”,隐藏了B、I到Z盘。
重启计算机后,再插入U盘,在我的电脑里也是看不出来的,但在地址栏里输入I:(我的电脑电后一个盘符是H)还是可以访问移动盘的。到这里大家都看得出“NoDrives”只是障眼法,所以我们还要做多一步,就是再新建一个二进制“NoViewOnDrive”,值改为“02 ff ff ff”,也就是说其值与“NoDrives”相同。 这样一来,既看不到U盘符也访问不到U盘了。
方法四,禁止安装USB驱动程序
在Windows资源管理器中,进入到“系统盘:\WINDOWS\inf”目录,找到名为“Usbstor.pnf”的文件,右键点击该文件,在弹出菜单中选择“属性”,然后切换到“安全”标签页,在“组或用户名称”框中选中要禁止的用户组,接着在用户组的权限框中,选中“完全控制”后面的“拒绝”复选框,最后点击“确定”按钮。
再使用以上方法,找到“usbstor.inf”文件并在安全标签页中设置为拒绝该组的用户访问,其操作过程同上。完成了以上设置后,该组中的用户就无法安装USB设备驱动程序了,这样就达到禁用的目的。
注意:要想使用访问控制列表(ACL),要采用NTFS文件系统。
上面有一些是用修改注册表来实现的,你用VB访问注册表来修改就可以实现
(锁定光驱在Win2000上的实现)
新建一个工程,在窗体上加入两个按钮,粘贴以下程序,看看效果怎么样?^_^
Option Explicit
Private Const GENERIC_READ As Long = H80000000
Private Const FILE_SHARE_READ As Long = H1
Private Const FILE_SHARE_WRITE As Long = H2
Private Const OPEN_EXISTING As Long = 3
Private Const IOCTL_STORAGE_MEDIA_REMOVAL As Long = H2D4804
Private Type PREVENT_MEDIA_REMOVAL
PreventMediaRemoval As Byte
End Type
Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, lpOverlapped As Any) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Function LockCDROM(szDrive As String, IsLock As Boolean) As Boolean
On Error GoTo Err
Dim hDevice As Long
Dim PMR As PREVENT_MEDIA_REMOVAL
Dim bytesReturned As Long
Dim Success As Long
hDevice = CreateFile("\\.\" szDrive, GENERIC_READ, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0, OPEN_EXISTING, 0, 0)
PMR.PreventMediaRemoval = CByte(Abs(IsLock))
Success = DeviceIoControl(hDevice, IOCTL_STORAGE_MEDIA_REMOVAL, PMR, Len(PMR), ByVal 0, 0, bytesReturned, ByVal 0)
CloseHandle hDevice
LockCDROM = True
Exit Function
Err:
LockCDROM = False
End Function
Private Sub Command1_Click()
Dim ret As Boolean
ret = LockCDROM("H:", True) '我的光驱盘符是H:
If ret Then
MsgBox "锁定成功", vbInformation, "提示"
Else
MsgBox "锁定失败", vbInformation, "提示"
End If
End Sub
Private Sub Command2_Click()
Dim ret As Boolean
ret = LockCDROM("H:", False)
If ret Then
MsgBox "解除锁定成功", vbInformation, "提示"
Else
MsgBox "解除锁定失败", vbInformation, "提示"
End If
End Sub
VB.NET怎样把USB摄像头在显示器上输出的实时画面(像素信息),引入到数据库.
用directshow获取帧缓存,转换为标准图像格式(比如jpg,png这些),存储到数据库的image字段里就行了.
VB.NET控制台
就是这样的老兄,显示完就是闪一下,不会等你看的。程序流程本来就是这样嘛。
一般要看的话,都是在下面加一句:
console.read()
这样等到你按回车,才会结束 。
分享文章:vb.netusb控制 vbnet usercontrol
分享网址:http://azwzsj.com/article/doepges.html