Question

Je tente de créer un processus comme ceci:

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

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

Maintenant, la variable d'environnement « red_root » existe bel et bien dans le processus donné naissance à variables d'environnement, mais l'exécution ne semble pas étendre la variable d'environnement et que le fichier est introuvable. Comment puis-je obtenir le Process.Start d'étendre la variable d'environnement dans le nom de fichier?

Était-ce utile?

La solution

Le Environment.ExpandEnvironmentVariables méthode devrait aider.

  

Remplace le nom de chaque environnement   variable incorporée dans le spécifié   chaîne avec la chaîne équivalente de   la valeur de la variable, puis   renvoie la chaîne résultante.

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

Autres conseils

Avez-vous essayé System.Environment.GetEnvironmentVariable ("red_root", EnvironmentVariableTarget.Machine)?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top