我想从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
答案 0 :(得分:2)
我测试过这通常适用于拉撒路。我假设传递的参数的语法是错误的。
正如@Nested Type所说:你不需要引用参数。 TProcess为您做到了这一点。