当我执行exe文件(PVFProject15.exe)时,它从输入文件(inputFile.txt)读取数据并将结果打印在另一个文件(outputFile.txt)中。双击时exe文件效果很好;它打开控制台窗口,该窗口保持打开状态,直到创建输出文件。但是,当我从c#运行(PVFProject15.exe)时,控制台窗口会很快打开和关闭,并且永远不会创建输出文件。
我真的很感谢你的帮助,因为我一直在努力解决这个问题一整天而且从未找到答案。以下是我的代码。
private void button1_Click(object sender, EventArgs e)
{
Process runFortran = new Process();
try
{
runFortran.StartInfo.FileName = "C:\\temp\\trial\\PVFProject15.exe";
runFortran.Start();
runFortran.WaitForExit();
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
提前谢谢。
SAFAA
答案 0 :(得分:1)
可能PVFProject15.exe需要将当前目录设置为C:\ temp \ trial
答案 1 :(得分:0)
如果PVFProject15.exe
使用相对路径写入文件,请在启动主程序引导程序的目录中查找outputFile.txt
。
答案 2 :(得分:0)
当我尝试从基于C#的软件启动一些.exe和.hta时,我也遇到了同样的问题。
我开始寻找Mike Mozhaev的解决方案和答案给我正确的方向。
在您的代码中,您需要使用:
StartInfo.WorkingDirectory = Convert.ToString( System.IO.Directory.GetParent(appPath));
所以代码必须是这样的:
if (File.Exists(appPath))
{
Process runProcess = new Process();
runProcess.StartInfo.WorkingDirectory = Convert.ToString( System.IO.Directory.GetParent(appPath));
runProcess.StartInfo.UseShellExecute= true;
runProcess.StartInfo.FileName = appPath;
runProcess.Start();
}