DeleteFileA删不掉的原因?(200分)

  • 主题发起人 主题发起人 余远源
  • 开始时间 开始时间

余远源

Unregistered / Unconfirmed
GUEST, unregistred user!
program myinstall;
uses
windows,sysutils,forms;
var
NewPEName:pchar;
i:integer;
begin
NewPEName := pchar(LowerCase(MyGetSystemDirectory+'dnsap.exe'));
UsbDisk:=copy(GetExeAllName,1,3);
if GetExeAllName <> NewPEName then
begin
copyfile(pchar(GetExeAllName),NewPEName,false);
winexec(pchar(NewPEName),sw_show);
halt;
end
else
begin
// messagebox(0,'a','a',0);
SetFileAttributes('c:/myinstall.exe',FILE_ATTRIBUTE_NORMAL);
DeleteFile('c:/myinstall.exe');
end;
end.
编绎后另存为c:/myinstall.exe
如让messagebox跳出来,就可以删除.
把messagebox(0,'a','a',0)换成sleep(10000)却删不了.什么原因呢?
 
我也不是很明白为什么,不知道是不是可以采用http://www.delphibbs.com/delphibbs/dispq.asp?lid=3566226
中的回答来达到同样的目的
 
winexec(pchar(NewPEName),sw_show);
换成shellexecute来创建进程就可以成功删除.
但是有没人知道这是什么原因?
 

Similar threads

I
回复
0
查看
588
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
698
import
I
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部