USB控制工具

bob 发表于 2010-09-03 20:27 浏览次数:5 views

原理:

1、首先,关闭USB存储设备的盘符自动分配,打开注册表,找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR
,将”Start”的值改为4(禁止自动启动),默认为3是自动分配盘符

2、干掉USB存储设备的作用文件:进入WINDOWS系统目录,找到X:\Windows\inf
这里说明一下,USB存储设备的作用文件有两个,分别是usbstor.inf和usbstor.pnf,
因为后续可能需要重新打开USB功能,所以不要删除它,建议拷贝到其他位置,当然你要暴力一点,删除它也没关系,但记得做好备份。
 
3、然后,禁止将电脑里的资料拷贝到USB存储设备,意思是把USB存储设备设置只读的,打开注册表:定位到
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control
在其下新建一个名为“StorageDevicePolicies”的项,选中它,在右边的窗格中新建一个名为
“WriteProtect”的DWORD值,并将其数值数据设置为1

演示图:

usbcontrol

代码如下:

#include
#Include 
 
Opt("GUIOnEventMode", 1) ;GUI事件响应模式
 
$Reg1 = String(RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start"))
$Reg2 = String(RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies","WriteProtect"))
 
GUICreate("USB控制工具", 200, 150)
$Label = GUICtrlCreateLabel("密 码:",10,25,50,20)
$Input = GUICtrlCreateInput("", 60, 20, 120, 20,0x0020)
GUICtrlSetState(-1, $GUI_FOCUS)
$Button = GUICtrlCreateButton("确定", 60, 60, 80, 30, 0)
GUICtrlCreateLabel("E-Mail:", 24,105, 48, 17)
$Label6 = GUICtrlCreateLabel("bob@hy12.com", 71, 105, 79, 17)
GUICtrlSetColor(-1,0x0000ff)
GUICtrlCreateLabel("Web:", 24, 125, 48, 17)
$Label7 = GUICtrlCreateLabel("www.hy12.com", 71, 125, 77, 17)
GUICtrlSetColor(-1,0x0000ff)
 
$Radio1 = GUICtrlCreateRadio("关闭U盘设备", 24, 12, 100, 20)
GUICtrlSetState(-1, $GUI_HIDE)
$Radio2 = GUICtrlCreateRadio("只禁止U盘拷贝", 24, 42, 100, 20)
GUICtrlSetState(-1, $GUI_HIDE)
$Radio3 = GUICtrlCreateRadio("开启U盘功能", 24, 72, 100, 20)
GUICtrlSetState(-1, $GUI_HIDE)
Dim $AccelKeys[1][2]=[["{Enter}", $Button]]
GUISetAccelerators($AccelKeys)
 
GUISetState(@SW_SHOW)
 
GUICtrlSetOnEvent($Button, "Gui")
GUICtrlSetOnEvent($Radio1, "Gui")
GUICtrlSetOnEvent($Radio2, "Gui")
GUICtrlSetOnEvent($Radio3, "Gui")
GUISetOnEvent($GUI_EVENT_CLOSE, "gui")
 
While 1
WEnd
 
Func Gui()
Switch @GUI_CtrlId
    Case $GUI_EVENT_CLOSE
        Exit
    Case $Button
		$Pwd = GUICtrlRead($Input)
		If $Pwd <> "hy12.com" Then
			MsgBox(16, "密码错误", '请重新输入密码')
			GUICtrlSetData($Input, "")
		Else
			GUICtrlSetState($Label, $GUI_HIDE)
			GUICtrlSetState($Input, $GUI_HIDE)
			GUICtrlSetState($Button , $GUI_HIDE)
			GUICtrlSetState($Radio1 , $GUI_SHOW)
			GUICtrlSetState($Radio2 , $GUI_SHOW)
			GUICtrlSetState($Radio3 , $GUI_SHOW)
			If $Reg1=4 And $Reg2 = 1 Then
					GUICtrlSetState($Radio1 , $GUI_CHECKED)
				ElseIf  $Reg1=3 And $Reg2 = 1  Then
					GUICtrlSetState($Radio2, $GUI_CHECKED)
				Else
					GUICtrlSetState($Radio3, $GUI_CHECKED)
			EndIf
		EndIf
	Case $radio1
		If BitAND(GUICtrlRead($radio1), $GUI_CHECKED) = $GUI_CHECKED Then
		DisableUSB()
		MsgBox(0,'禁止成功','请重新插入U盘')
		EndIf
	Case $radio2
		If BitAND(GUICtrlRead($radio2), $GUI_CHECKED) = $GUI_CHECKED  Then
		LimitUSB()
		MsgBox(0,'限制成功','请重新插入U盘')
		EndIf
	Case $radio3
		If BitAND(GUICtrlRead($radio3), $GUI_CHECKED) = $GUI_CHECKED Then
		EnableUSB()
		MsgBox(0,'开启成功','请重新插入U盘')
		EndIf
  EndSwitch
EndFunc 
 
Func DisableUSB()
	;关闭USB存储设备的盘符自动分配,默认为3是自动分配盘符,4为禁止自动启动
	RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start", "REG_DWORD", "4")
	;删除USB存储设备文件(做移动即可,以备还原)
	FileMove(@WindowsDir&"\inf\usbstor.inf", @WindowsDir)
	FileMove(@WindowsDir&"\inf\usbstor.pnf", @WindowsDir)
	;禁止将电脑里的资料拷贝到USB存储设备,即把USB存储设备设置只读
	RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies","WriteProtect","REG_DWORD","1")
EndFunc
 
Func LimitUSB()
	RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start", "REG_DWORD", "3")
	FileMove(@WindowsDir&"\usbstor.inf", @WindowsDir&"\inf\")
	FileMove(@WindowsDir&"\usbstor.pnf", @WindowsDir&"\inf\")
	RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies","WriteProtect","REG_DWORD","1")
EndFunc
 
Func EnableUSB()
	RegWrite("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\USBSTOR", "Start", "REG_DWORD", "3")
	FileMove(@WindowsDir&"\usbstor.inf", @WindowsDir&"\inf\")
	FileMove(@WindowsDir&"\usbstor.pnf", @WindowsDir&"\inf\")
	RegDelete("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies")
EndFunc
关键字: | 分类: 常用代码 | 评论数: 0 | 阅读全文

常用Au3代码

bob 发表于 2010-07-27 09:18 浏览次数:176 views

        大家对这些代码可能了如指掌,我只是从一个菜鸟的角度选择了一些我觉得比较实用的代码,供自己和朋友们参考使用。

;读取IE主页
$startpage=RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main","Start Page")
;设置IE主页为原先的
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main","Start Page","REG_SZ",$startpage)
 
;文件大小验证,验证不符退出安装
If FileGetSize("setup.exe") <> 10000 Then
    Exit
EndIf
 
;判断用户的操作系统.(只支持xp/2003系统
If @OSVersion<>"WIN_2003" Or @OSVersion<>"WIN_XP" Then
   MsgBox(16,"错误","本程序不支持你当前操作系统!")
   Exit
EndIf
 
TrayTip("提醒您!!!","正在进行安装,安装时将锁定键盘鼠标!",1);气泡提示
opt("RunErrorsFatal", 0);在遇到严重错误时是否自动终止
 
BlockInput (1);锁定键盘鼠标
BlockInput (0);解锁键盘鼠标
 
;打开页面并最大化
$oIE = _IECreate ("http://www.autoit.net.cn",0,0,0,0)
WinSetState(_IEPropertyGet ($oIE,"hwnd"),"",@SW_MAXIMIZE)
_IEAction($oIE,"visible")
;打开页面并全屏显示
$oIE = _IECreate ("http://www.autoit.net.cn",0,1,0,0)
_IEPropertySet ($oIE, "theatermode",True)
关键字: , | 分类: 常用代码 | 评论数: 0 | 阅读全文

返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明 | 模板设计