Используйте свойство ProcessStartInfo.WorkingDirectory , чтобы установить его до запуска процесса. Если свойство не установлено, рабочим каталогом по умолчанию является% SYSTEMROOT% \ system32.
Вы можете определить значение% SYSTEMROOT%, используя:
string _systemRoot = Environment.GetEnvironmentVariable("SYSTEMROOT");
Вот пример кода, который открывает Notepad.exe с рабочим каталогом% ProgramFiles%:
...
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 .