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%' ..."

Était-ce utile?

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());
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top