C# 从c运行exe文件时出现问题#
当我执行一个exe文件(PVFProject15.exe)时,它从一个输入文件(inputFile.txt)读取数据,并将结果打印到另一个文件(outputFile.txt)中。当我双击exe文件时,它运行良好;它打开控制台窗口,该窗口在创建输出文件之前一直保持打开状态。但是,当我从c#运行(PVFProject15.exe)时,控制台窗口会很快打开和关闭,并且输出文件永远不会创建 我真的很感激你的帮助,因为我一整天都在努力解决这个问题,但一直没有找到答案。下面是我的代码C# 从c运行exe文件时出现问题#,c#,.net,exe,C#,.net,Exe,当我执行一个exe文件(PVFProject15.exe)时,它从一个输入文件(inputFile.txt)读取数据,并将结果打印到另一个文件(outputFile.txt)中。当我双击exe文件时,它运行良好;它打开控制台窗口,该窗口在创建输出文件之前一直保持打开状态。但是,当我从c#运行(PVFProject15.exe)时,控制台窗口会很快打开和关闭,并且输出文件永远不会创建 我真的很感激你的帮助,因为我一整天都在努力解决这个问题,但一直没有找到答案。下面是我的代码 private voi
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如果
PVFProject15.exe
使用相对路径写入文件,请在启动主程序引导程序的目录中查找outputFile.txt
。可能PVFProject15.exe需要将当前目录设置为C:\temp\trial我也遇到同样的问题,当我尝试从基于C#的软件启动一些.exe和.hta时。
我开始寻找迈克·莫扎耶夫的解决方案和答案,让我找到正确的方向。
在代码中,您需要使用:
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();
}
我用记事本和我创建的其他控制台应用程序尝试了您的代码,它似乎工作得很好。您有PVFProject15.exe的代码吗?您没有将StartInfo.WorkingDirectory设置为@“c:\temp\trial”。许多写得很差的程序都无法生存下来。