Answers:
在启动过程之前,请使用ProcessStartInfo.WorkingDirectory属性进行设置。如果未设置该属性,则默认工作目录为%SYSTEMROOT%\ system32。
您可以使用以下方法确定%SYSTEMROOT%的值:
string _systemRoot = Environment.GetEnvironmentVariable("SYSTEMROOT");
这是一些打开工作目录为%ProgramFiles%的Notepad.exe的示例代码:
...
using System.Diagnostics;
...
ProcessStartInfo _processStartInfo = new ProcessStartInfo();
_processStartInfo.WorkingDirectory = @"%ProgramFiles%";
_processStartInfo.FileName = @"Notepad.exe";
_processStartInfo.Arguments = "test.txt";
_processStartInfo.CreateNoWindow = true;
Process myProcess = Process.Start(_processStartInfo);
还有一个Environment变量,它控制您的进程的当前工作目录,您可以直接通过Environment.CurrentDirectory属性访问该目录。
试着实现这一点后,只是一个提示。如果将“ UseShellExecute”设置为false,则无法设置WorkingDirectory值。
WorkingDirectory是相对路径,如果是,则相对路径是相对于当前文件或当前可执行文件的目录?我无法让我的程序找到我要启动的可执行文件。我已经将工作目录设置为exe的目录(相对于当前文件和当前exe),但找不到它。