İşlemi başlatmadan önce ayarlamak için ProcessStartInfo.WorkingDirectory özelliğini kullanın . Özellik ayarlanmamışsa, varsayılan çalışma dizini% SYSTEMROOT% \ system32'dir.
Şunları kullanarak% SYSTEMROOT% değerini belirleyebilirsiniz:
string _systemRoot = Environment.GetEnvironmentVariable("SYSTEMROOT");
Notepad.exe'yi% ProgramFiles% çalışma diziniyle açan bazı örnek kodlar:
...
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);
Ayrıca, Environment.CurrentDirectory özelliği aracılığıyla doğrudan erişebileceğiniz, işleminiz için geçerli çalışma dizinini kontrol eden bir Ortam değişkeni vardır .
WorkingDirectorygöreli bir yol olabilir ve eğer öyleyse, o, göreli geçerli dosya veya geçerli yürütülebilir dizin nedir? Programımı başlatmaya çalıştığım yürütülebilir dosyayı bulmada sorun yaşıyorum. Çalışma dizinini exe dizinine (mevcut dosyaya ve mevcut exe'ye göre) ayarladım, ancak bulamıyor.