delphi 运行外部程序函数winexec WinExecAndWait32 CreateProcess

转载地址:http://blog.sina.com.cn/s/blog_7fdf737901013vgh.html

运行外部程序但不需等待winexec

运行外部程序并等待外部程序结束才返回结果的函数

function WinExecAndWait32(FileName: string; Visibility: Boolean): integer;
var
  zAppName: array[0..512] of char; //存放应用程序名
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
  exitCode: Dword;
  aVisibility: integer;
begin  
  StrPCopy(zAppName, FileName);  
  FillChar(StartupInfo, Sizeof(StartupInfo), #0);  
  //给StartupInfo结构体赋值
  StartupInfo.cb := Sizeof(StartupInfo);  
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;  
  if Visibility then  
  aVisibility := 1
  else  
  aVisibility := 0;

  StartupInfo.wShowWindow := aVisibility;
  //调用CreateProcess 创建进程,执行指定的可执行文件
  if not CreateProcess(nil, zAppName, nil, nil, false
  , CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS
  , nil, nil, StartupInfo, ProcessInfo) then
  Result := -1
  else
  begin
  //等待可执行文件退出
  WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
  //得到进程终止状态码
  GetExitCodeProcess (ProcessInfo.hProcess, exitCode);
  result := exitCode;
  end;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值