TAsyncProcess不以参数开头

时间:2016-01-30 12:37:00

标签: lazarus fpc

我想从TProcess运行phantonJS可执行文件我的JS和一些参数。但是TAsyncProcess忽略了我的命令行参数。
PhandomJS文档说,我必须按顺序运行我的脚本:

phantomjs.exe [phantom opts] jsfile.js [jsfile opts]

在代码中:

  fProc := TAsyncProcess.Create(nil);
  fProc.Options := [poNoConsole, poStderrToOutPut];
  fProc.ShowWindow := swoNone;
  fproc.StartupOptions := [suoUseShowWindow];
  fProc.OnTerminate := @privOnProcTerminated;
  fDebugFile := '';   
...
  fProc.CurrentDirectory := ExtractFilePath(fExecutable);
  fProc.Executable := fExecutable;
  fproc.Parameters.Add(fPhantomScript);
  fproc.Parameters.Add(IntToStr(fPort));
  fproc.Parameters.Add(fHost);
  fproc.Parameters.Add(fDebugFile);
  fProc.ShowWindow := swoShowNormal;
  fproc.StartupOptions := fproc.StartupOptions + [suoUseShowWindow];
  if not isRunning then
  begin
    fProc.Execute;
    Logger.Send('phantonJS launched.');
    Result := True;
  end    

可执行文件正在启动,但是我没有看到,这些参数被应用于进程(通过系统资源管理器),脚本也不能正常工作。

为什么TAsyncProcess会忽略我的参数? 如何解决?

来自网站的Lazarus 1.4.4。 目标操作系统:Windows

1 个答案:

答案 0 :(得分:2)

我测试过这通常适用于拉撒路。我假设传递的参数的语法是错误的。

正如@Nested Type所说:你不需要引用参数。 TProcess为您做到了这一点。