您可以使用此命令从命令提示符启动FreePascal并加载源: C:\ FPC \ 2.6.2 \ bin \ i386-win32 \ fp.exe 2.pas ,其中第一个参数是FreePascal可执行文件的路径,2.pas是源。现在,我想从C#中打开这样的来源。我已经尝试了这个但是没有用:
Process process = new System.Diagnostics.Process();
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
startInfo.UseShellExecute = false; //required to redirect
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = string.Format("/C C:\\FPC\\2.6.2\\bin\\i386-win32\\fp.exe \"{0}\"", sourcePath);
process.StartInfo = startInfo;
process.Start();
和
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "C:\\FPC\\2.6.2\\bin\\i386-win32\\fp.exe";
startInfo.Arguments = path;
Process.Start(startInfo);
你有什么建议吗? 谢谢!
UPDATE 路径值示例: “C:\ FPC \ 2.6.2 \ bin \ i386-win32 \ 3.pas”
答案 0 :(得分:4)
尝试在字符串中添加@
,使其成为verbatim string literal,这样反斜杠就可以了:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\FPC\2.6.2\bin\i386-win32\fp.exe";
startInfo.Arguments = path;
Process.Start(startInfo);
或者:
startInfo.FileName = "cmd.exe";
startInfo.Arguments = string.Format("/C {0} \"{1}\"",
@"C:\FPC\2.6.2\bin\i386-win32\fp.exe", sourcePath);
答案 1 :(得分:1)
您必须在@
前添加路径字符串。请遵循以下代码:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\FPC\2.6.2\bin\i386-win32\fp.exe";
startInfo.Arguments = @"2.pas";
Process.Start(startInfo);