zoukankan      html  css  js  c++  java
  • 执行程序函数

    执行程序及启动参数, 并可选是否等待程序结束

    function RunApp(AApp, AParams: String; AWaitFor: Boolean): DWORD;
    var
      nSI: TSTARTUPINFO;
      nPI: TPROCESSINFORMATION;
      nR: Boolean;
    begin
      Result := 0;
      with nSI do
      begin
        cb := Sizeof(TSTARTUPINFO);
        lpReserved := nil;
        lpDesktop := nil;
        lpTitle := nil;
        dwFlags := STARTF_USESHOWWINDOW and STARTF_USESTDHANDLES;
        cbReserved2 := 0;
        lpReserved2 := nil;
      end;
      nR := CreateProcess(PChar(AApp), PChar(AParams), nil, nil, True,
        CREATE_DEFAULT_ERROR_MODE and NORMAL_PRIORITY_CLASS, nil, PChar(ExtractFilePath(AApp)), nSI,
        nPI);
      if nR then { 等待结束 }
      begin
        if AWaitFor then
        begin
          Result := 1;
          WaitForSingleObject(nPI.hProcess, INFINITE);
          CloseHandle(nPI.hProcess); { 清理句柄 }
          CloseHandle(nPI.hThread);
        end
        else
          Result := nPI.dwProcessId;
      end;
    end;
  • 相关阅读:
    调试与分析
    GCC
    汇编
    数据恢复
    TCP/IP
    shell
    vmstat、top
    计算程序运行时间的封装
    protobuf
    c++模板
  • 原文地址:https://www.cnblogs.com/lzl_17948876/p/7656499.html
Copyright © 2011-2022 走看看