Mimic Windows' fenêtre « Exécuter » dans .NET
-
03-10-2019 - |
Question
Je voudrais imiter la commande Exécuter dans Windows dans mon programme. En d'autres termes, je voudrais donner à l'utilisateur la possibilité de « exécuter » un morceau de texte arbitraire serait exactement comme si elles se tapés dans la zone d'exécution.
Alors que System.Diagnostics.Process.Start()
me fait paraître près, je ne peux pas obtenir certaines choses comme des variables d'environnement telles que% AppData% de travail. Je continue juste à faire passer le message "Windows ne peut pas trouver '% AppData%' ..."
La solution
Vous pouvez utiliser la Environment.ExpandEnvironmentVariables méthode pour transformer% AppData% en ce qu'il correspond en fait à.
Autres conseils
En fonction de ce que vous essayez de faire, vous pouvez également appeler cmd.exe, qui augmentera automatiquement vos variables d'environnement. L'exemple ci-dessous fera un DIR de votre% AppData% dossier et rediriger la sortie standard du débogage:
StreamReader stdOut;
Process proc1 = new Process();
ProcessStartInfo psi = new ProcessStartInfo("CMD.EXE", "/C dir %appdata%");
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
proc1.StartInfo = psi;
proc1.Start();
stdOut = proc1.StandardOutput;
System.Diagnostics.Debug.Write(stdOut.ReadToEnd());