Delphi ShellExecute调用应用程序时,应用程序配置文件未被读...

原创
2023/04/28 08:50
阅读数 27


procedure loadexe(a: string; b: string);
var

  path: string;
  ApacheStartupInfo: TStartupInfo;
  ApacheProcessInfo: TProcessInformation;
  // a, b: string;
begin

  path := ExtractFilePath(ParamStr(0));

  // a := path + '\app\fxcd\FoDict.exe';
  // b := path + '\app\fxcd\';
  // ShellExecute(Self.handle,'open', PWideChar(a),'','',SW_SHOWNORMAL);
  FillChar(ApacheProcessInfo, sizeof(ApacheProcessInfo), 0);
  FillChar(ApacheStartupInfo, sizeof(ApacheStartupInfo), 0);
  ApacheStartupInfo.cb := sizeof(ApacheStartupInfo);
  ApacheStartupInfo.dwFlags := STARTF_USESHOWWINDOW;
  ApacheStartupInfo.wShowWindow := SW_HIDE;
  a := StringReplace(a, '\', '\\', [rfReplaceAll]);
  b := StringReplace(b, '\', '\\', [rfReplaceAll]); // 转换自动获取的路径中的 \ 为 \\

  // 将EXE所在工作目录转到CreateProcess中,没有调用成功的主要原因就在于此
  If CreateProcess(PWideChar(a), nil, nil, nil, False, 0, nil, PWideChar(b),
    ApacheStartupInfo, ApacheProcessInfo) then
  begin

  end
  else
  begin
    // memo1.Lines.Add('[' + FormatdateTime('hh:nn:ss', Now)+ '] Apache服务启动失败,请检查相关配置');
  end;

end;

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部