delphi编程,关于移动设备的检测问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 15:21:50
这次想做个‘傻瓜u盘免疫程序’,也就是当u盘插入后,许响应个事件。比如,u盘插入后,程序检测是否存在autorun.inf,有就删除,而且是只检测可移动设备的目录。之前玩过下vbs,也就懂点如何靠vbs来基本完成我的想法,但是在delphi上就不知道应该是如何了,请教下。

vbs的检测可移动设备的代码如下,

dim fso,st,drive
set fso=createobject("scripting.filesystemobject")
set st=fso.drives

for i=1 to 2
i=1
for each f in st

if f.drivetype=1 then //drivetype=0时是不可识别,1是移动硬盘,2是本地磁盘
n=f.path

·····

不知道以上的代码要用delphi来如何表达。

还有就是上面代码处的不足,要一直检测才行,我想要写成,不是要个循环来控制检测的。想写成,当有新的u盘插入后,判断是否是新的接入的设备,然后才响应一个事件。

麻烦尽量详细点,谢谢。

很简单.
procedure aaa(var msg:TMessage);message WM_DEVICECHANGE;

procedure TForm1.aaa(var msg: TMessage);
const
DBT_DEVICEARRIVAL = $8000;
DBT_DEVICEREMOVECOMPLETE = $8004;
DBT_DEVNODES_CHANGED = $0007;
begin
case msg.WParam of
DBT_DEVICEARRIVAL:ShowMessage('insert');//增加了新硬件
DBT_DEVICEREMOVECOMPLETE:ShowMessage('remove') ;
DBT_DEVNODES_CHANGED:
begin

end;
end;
end;