首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

WINEXEC有问!该怎么处理

2013-01-01 
WINEXEC有问!用WINEXEC运行个命令行命令。这个批处理是一个7zip的压缩命令。 我想压缩后吧这个7zip.exe删掉。

WINEXEC有问!
用WINEXEC运行个命令行命令。这个批处理是一个7zip的压缩命令。 我想压缩后吧这个7zip.exe删掉。但是直接在winexec的下一行删。程序运行的时候说被占用。应该如何搞呢?
[解决办法]
WinExec调用命令时,发出命令后,不管有没有执行完成,就立即返回
象你这种解压应该是要花费一定时间的。这样就造成解压还在继续,但你程序已经执行到下一步了,所以就会出现你说的情况。

改用CreateProcess

[解决办法]


var
  SI : TStartupInfo;
  PI : TProcessInformation;
begin
  FillChar(SI , SizeOf(SI) , 0);
  SI.cb := SizeOf(SI);
  CreateProcess(NIL , 'notepad.exe' , NIL , NIL , False , 0 , NIL , NIL , SI , PI);
  WaitForSingleObject(PI.hProcess , INFINITE);//等待 notepad执行完成
  CloseHandle(PI.hThread);
  CloseHandle(PI.hProcess);
end;

[解决办法]
在批处理里头最后加上一行del "c:\7zip.exe"不就行了?

热点排行