2010-12-08 21 views
10

Ben şöyle bir süreç oluşturmak için çalışılıyor:C# 'nin Process.Start'ın ortam değişkenlerini genişletmesini nasıl sağlayabilirim?

var psi = new ProcessStartInfo 
{ 
    FileName = @"%red_root%\bin\texturepreviewer.exe", 
    UseShellExecute = true 
}; 

var process = Process.Start(psi); 
process.WaitForExit(); 

Şimdi ortam değişkeni "red_root" kesinlikle olurken süreci ortam değişkenleri mevcut fakat ortam değişkeni genişletmek için görünmüyor yürütmek ve bu yüzden dosya bulunamadı. Dosya adındaki ortam değişkenini genişletmek için Process.Start'ı nasıl alabilirim?

cevap

20

Environment.ExpandEnvironmentVariables yöntemi burada yardımcı olmalıdır.

değişkeninin değeri dize eşdeğeri ile belirlenen dize gömülü değişken ardından dizge geri döndürür her ortam adı değiştirir. Bu yöntem .NET 1.1 yana yaklaşık edilmiş gibi

string unexpandedPath = "%red_root%\\bin\\texturepreviewer.exe"; 
psi.FileName = Environment.ExpandEnvironmentVariables(unexpandedPath); 
+1

yüzden günümüzde kullanımı oldukça güvenli görünüyor. –

6

System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)'u denediniz mi?

İlgili konular