Utilisez le ProcessStartInfo.WorkingDirectory (répertoire de travail) pour la définir avant de lancer le processus. Si cette propriété n'est pas définie, le répertoire de travail par défaut est %SYSTEMROOT%. \system32.
Vous pouvez déterminer la valeur de %SYSTEMROOT% en utilisant :
string _systemRoot = Environment.GetEnvironmentVariable("SYSTEMROOT");
Voici un exemple de code qui ouvre Notepad.exe avec un répertoire de travail de %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);
Il existe également une variable d'environnement qui contrôle le répertoire de travail actuel de votre processus et à laquelle vous pouvez accéder directement via la commande Répertoire actuel de l'environnement propriété .