我有一个我想通过命令行参数执行它的exe。
var query = Path.Combine(path, calculator.ExeName + ".exe");
var p = new Process();
p.StartInfo.FileName = query;
//the command line parameter that causes the exe to start in an invisible mode
p.StartInfo.Arguments = "episrc"
p.Start();
这段代码有效,它启动了exe,但是有一个问题:exe应该是在其目录中的文件上写,但这不会发生。该过程成功退出(Exitcode0)。可能是造成这个问题的原因是什么? 我有一个Delphi代码成功执行exe和exe写入文件,但它使用win32 API的ExecProcess,因此exe是有效的。
此外,如果我尝试从命令提示符执行它,如下所示:kowwinnt.exe episrc
它会成功写入文件。
答案 0 :(得分:1)
您应该设置Working Directory。
您的代码如下所示:
var query = Path.Combine(path, calculator.ExeName + ".exe");
var p = new Process();
p.StartInfo.FileName = query;
p.StartInfo.WorkingDirectory = path;
//the command line parameter that causes the exe to start in an invisible mode
p.StartInfo.Arguments = "episrc"
p.Start();