Windows '' Run Windows '' Run 'в .NET
-
03-10-2019 - |
Вопрос
Я хотел бы имитировать команду запуска в 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());