Вопрос

Я хотел бы имитировать команду запуска в Windows в моей программе. Другими словами, я хотел бы дать пользователю возможность «запустить» произвольный текст именно так, как произошел, если бы они набрали его в поле Run.

Пока System.Diagnostics.Process.Start() Помимо меня близко, я не могу получить определенные вещи, такие как переменные среды, такие как% AppData%. Я просто продолжаю получать сообщение «Windows не может найти»% AppData% '... "

Это было полезно?

Решение

Вы можете использовать Окружающая среда .ExpandenvironmentVariables. Способ отключить% AppData% на то, что он на самом деле соответствует.

Другие советы

В зависимости от того, что вы пытаетесь сделать, вы также можете позвонить CMD.exe, что расширит вашу среду переменные автоматически. Приведенный ниже пример приведен режремую папку% AppData%, и перенаправляйте stdout к отладке:

        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());
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top