delphi 执行一个外部程序,当外部程序结束后言主程序立即响应
我們經(jīng)常能看到360安全衛(wèi)士進行windows系統(tǒng)升級時,執(zhí)行windows升級程序,當升級程序執(zhí)行完成后,360馬上彈出提示框。
這樣的程序是如何做到的呢?下述代碼就能完成!
uses shellAPI;
procedure TForm1.Button1Click(Sender: TObject);
var
SEInfo: TShellExecuteInfo;
ExitCode: DWORD;
ExecuteFile, ParamString, StartInString: string;
begin
ExecuteFile := 'c:\Windows\system32\Calc.exe';
FillChar(SEInfo, SizeOf(SEInfo), #0);
SEInfo.cbSize := SizeOf(TShellExecuteInfo);
with SEInfo do begin
??? fMask := SEE_MASK_NOCLOSEPROCESS;
??? Wnd := Application.Handle;
??? lpFile := PChar(ExecuteFile);??? nShow := SW_SHOWNORMAL;
end;
if ShellExecuteEx(@SEInfo) then
begin
??? repeat
????? Application.ProcessMessages;
????? GetExitCodeProcess(SEInfo.hProcess, ExitCode);
????? if ExitCode = STILL_ACTIVE then Sleep(500);
??? until (ExitCode <> STILL_ACTIVE) or Application.Terminated;
??? ShowMessage('Calculator terminated');
end
else
??? ShowMessage('Error starting Calc!');
end;
轉(zhuǎn)載自:http://hi.baidu.com/sundelphi/blog/item/dfb95afe97371a88b901a0a9.html
轉(zhuǎn)載于:https://www.cnblogs.com/fubin/archive/2009/12/14/1623494.html
總結(jié)
以上是生活随笔為你收集整理的delphi 执行一个外部程序,当外部程序结束后言主程序立即响应的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【原创】A进程窗口嵌入到B进程窗口中显示
- 下一篇: C#中的委托和事件 (7)---总结