WINEXEC有问! 用WINEXEC运行个命令行命令。这个批处理是一个7zip的压缩命令。 我想压缩后吧这个7zip.exe删掉。但是直接在winexec的下一行删。程序运行的时候说被占用。应该如何搞呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 等待WinExec执行完成,然后用DeleteFile删除7Zip.exe 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"不就行了? 至s11ss:批处理是一条一条执行下去的,你执行del时7zip可能还在跑,会提示资源占用 给你个批处理,你看Hello是不是在winver结束后才显示。[code=BatchFile]@echo offwinverecho Hellopause[/code]当然如果是用start命令启动7zip,那就要加/WAIT参数,不然就会如你所说“执行del时7zip可能还在跑”。 delphi Tcxcheckcombobox控件问题 delphi clientdataset open 异常 如何将身份证(二代)上的信息,转换成文本的要有代码 数据库更新问题TADOQuery 没分了该怎么办?? 我想开发一个支持SQL和Asscee的程序,有什么要注意的请各位给个意见! 为什么我这几句代码不能实现查询! 求援:dbgrid问题,有请高手 窗体的创建问题 有知道关于控件事件的吗? WebXone – 一分钟搭建基于Delphi的B/S方案! 为什么我的IdTCPClient连接成功了,IdTCPServer却没有任何反应??
象你这种解压应该是要花费一定时间的。这样就造成解压还在继续,但你程序已经执行到下一步了,所以就会出现你说的情况。改用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;
[code=BatchFile]@echo off
winver
echo Hello
pause[/code]
当然如果是用start命令启动7zip,那就要加/WAIT参数,不然就会如你所说“执行del时7zip可能还在跑”。