3.1 U盘插入及密码登陆的判定
在Windows系统中,计算机上添加或者删除U盘时,将触发系统的WM_DEVICECHANGE消息。在过程中首先判断是否密码登陆关闭U盘锁功能,如果未登陆在定时器处理过程中再进行U盘授权的判定。
//捕获新添加删除硬件消息处理过程用于检测U盘的插入:
procedure TForm1.WMDeviceChange(var Message: TMessage);
const
DBT_DEVICEARRIVAL = $8000 ; //有新设备的消息编号
Begin
//用户已密码登陆U盘锁已关不卸载U盘
if LogIn then
exit;
if DisMountCmdOk then //如果已经发出卸载命令,则不再响应该消息
exit;
case Message.wParam of
DBT_DEVICEARRIVAL: //插入设备了
begin
DriverVol:=Driver; //获取刚插入U盘的盘符
GetUSBInfo(DriverVol,UsbId); //获取U盘序列号
DisMountCmdOk:=true; //置卸载命令
timer1.Enabled:=true; //卸载USB设备
end;
end;
inherited;
end;
当系统检测到U盘插入后,首先进行第一种密码登录判定,如果未登录再启用定时器在定时器处理过程对U盘进行第二种授权判定。
|