在自编程序里需反复调用xcopy.exe,但发现它一直驻留内存,最后导致有多个xcopy进程,请问该如何结束?另有一个copy的问题 (50分)

  • 主题发起人 主题发起人 anf
  • 开始时间 开始时间
A

anf

Unregistered / Unconfirmed
GUEST, unregistred user!
只需要结束xcopy.exe进程(win2000),请问有何好方法。
调用语句:shellexecute(0,'open','d:/winnt/system32/xcopy.exe',pchar(str3),nil,0);
本来想用filecopy,但不知为何总是不成功。
只是想实现copy c:/111/222.txt e:/333/*.*的功能。请高手指导。
 
另:请问如何实现:
当优盘或软盘插入时,自动将其内特定扩展名的文件(或所有文件)copy到指定目录
 
用shellexecute(0,'open','d:/winnt/system32/xcopy.exe',pchar(str3),nil,1);试试!
因为xcopy运行时会打开个dos窗口,dos窗口在运行后一般不会自动关闭,会留下个
"已完成- *** "的窗口驻留内存,如果用shellexecute(0,'open','d:/winnt/system32/xcopy.exe',pchar(str3),nil,1);
此时窗口处于非隐藏状态,可以手动关闭它.
如果一定要隐藏,可以用enumwindows() api 例举所有进程,在回调函数中关掉标题为"已完成- xcopy"
的窗口即可.(给你个地址上有我发的个帖子'http://www.delphibbs.com/delphibbs/dispq.asp?lid=1610161'上面有关于
例举句柄的代码)
第二问题:
var f1,f2:Tfilestream;
begin
try
f1:=Tfilestream.creat('c:/111/222.txt',fmopenread);
f2:=Tfilestream.creat('e:/333/*.*',fmopenwrite or fmcreat);
f2.copyfrom(f1,0);
finally
f1.free;
f2.free;
end;
end;


 
为何不用SHFileOperation函数????
 
后退
顶部