也就是调用一个外部的程序时如何等到它执行完了再执行下一行命令?? ?
解决方案 »
- 检测所有的USB端口和端口上所插的U盘(含U盘序列号)
- dbgrideh自动计算
- 请教各位,我写的下列语句,为什么数据在DBgrid控件中显示不出来啊!谢谢了!!
- 请问一个关于读取服务器xml文件的问题
- 使用idTCpServer和IdTCPClient,当一个客户端连上来时,怎样知道它的ip地址?
- 关于界面设置的问题,帮帮忙~~
- 如何区分图象的问题!200分哦!不够再加!
- delphi xe2 版本号没有办法递增
- 系统进程问题?(在线等待)
- 点击最小化按钮问题,参与者有分!!!
- 在DELPHI在用什么来执行USE一个数据库!
- 求DevExpress for D5 整套控件下载,100分相送!!!!
SHExecInfo.cbSize := sizeof(SHELLEXECUTEINFO);
SHExecInfo.fMask := SEE_MASK_NOCLOSEPROCESS;
SHExecInfo.Wnd := application.Handle;
SHExecInfo.lpVerb := nil;
SHExecInfo.lpFile := 'WinRAR.exe';
SHExecInfo.lpParameters := pchar('a '+ChangeFileExt(TheParm.filename,'.rar')+' '+ChangeFileExt(TheParm.filename,'.dmp'));
SHExecInfo.lpDirectory := nil;
SHExecInfo.nShow := SW_SHOW;
SHExecInfo.hInstApp := application.Handle;
ShellExecuteEx(@SHExecInfo);
WaitForSingleObject(SHExecInfo.hProcess, INFINITE);
closeHandle(SHExecInfo.hProcess);
//删除原的文件;
deletefile(TheParm.filename);
Function WinExecExW(cmd:pchar;visiable:integer):DWORD;
var
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
FillChar(StartupInfo,SizeOf(StartupInfo),#0);
StartupInfo.cb:=SizeOf(StartupInfo);
StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow:=visiable;
if not CreateProcess(nil,cmd,nil,nil,false,Create_new_console or Normal_priority_class,nil,nil,StartupInfo,ProcessInfo) then
begin
result:=0;
end
else
begin
waitforsingleobject(processinfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess,Result);
end;
end;