关于USB插入检索data导入导出的问题,求思路
学习AU3有一段时间了,大言不惭的和老板吹了次AU3的牛,老板随即提出一个写作要求:公司有台专供人们拷资料的PC,老板的意思是员工可以直接插上U盘进行杀毒的动作,导入导出资料以log的形式记录下来,我想了很长时间,一直delay到了现在;
先说我的思路,开机启动一脚本检查U盘的插入,
#include <Process.au3>
$strComputer = "."
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")
$colEvents = $objWMIService.ExecNotificationQuery _
("Select * From __InstanceOperationEvent Within 5 Where " _
& "TargetInstance isa 'Win32_LogicalDisk'")
While 1
$objEvent = $colEvents.NextEvent
If $objEvent.TargetInstance.DriveType = 2 Then
Select
Case $objEvent.Path_.Class()="__InstanceCreationEvent"
MsgBox(262144, "哎呀", "可移动磁盘" & $objEvent.TargetInstance.DeviceId & "已经插进来了!",3)
Case $objEvent.Path_.Class()="__InstanceDeletionEvent"
;MsgBox(262144, "哎呀", "可移动磁盘" & $objEvent.TargetInstance.DeviceId & "被拔出去了~",3)
EndSelect
EndIf
WEnd
公司用的symantec,开始想检查到U盘的插入,然后找代码进行杀毒,可偏偏无果,于是又生一计,在u盘扫毒前禁止打开U盘,找了段dos命令,可又对U盘不起作用,凌乱的我深知能力不行,不怪代码。
$U ="U盘盘符"
_RunDos("cacls "&$U&": /e /d %username%")
再说重头戏,data的导入导出LOG记录的问题,导入可能容易点还要面对随时拔掉的U盘记录不全的问题,导出呢?一点都没有思路
好吧,我知道,牛皮吹破了 用SetClipboardViewer函数获得WM_DRAWCLIPBOARD消息,从而得到拷贝粘贴信息,你就可以监视u盘的data的导入导出 本帖最后由 水木子 于 2011-7-3 22:42 编辑
这是我之前学习Windows Message时做的练习,希望能帮到你吧!
当然这不光是插入优盘插入的消息,这是设备发生改变所产生的消息,所以如果只需要优盘插入的消息还需要做些修改。
Global Const $WM_DEVICECHANGE = 537 ;设备发生改变
Global Const $DBT_DEVICEARRIVAL = 0x8000 ;设备插入
Global Const $DBT_DEVICEREMOVECOMPLETE = 0x8004 ;设备移除
GUIRegisterMsg($WM_DEVICECHANGE, 'My_Message_Test')
GUICreate("Test", 400, 300)
;GUISetState()
Do
Until GUIGetMsg() = -3
Func My_Message_Test($hWnd, $Msg, $wParam, $lParam)
Switch $wParam
Case $DBT_DEVICEARRIVAL
MsgBox(0, '提示!', '检测到设备插入 - ' & $lParam)
Case $DBT_DEVICEREMOVECOMPLETE
MsgBox(0, '提示!', '检测到设备被移除 - ' & $lParam)
EndSwitch
EndFunc ;==>My_Message_Test 这是我之前学习Windows Message时做的练习,希望能帮到你吧!
当然这不光是插入优盘插入的消息,这是设备发 ...
水木子 发表于 2011-7-3 22:39 http://www.autoitx.com/images/common/back.gif
水哥是孙悟空? 这么厉害! 回复 2# happytc
谢谢了,明天测试 回复 3# 水木子
谢谢孙悟空大哥,我明天好好屡屡
页:
[1]