Mimic ventana de Windows' 'Run' en .NET
-
03-10-2019 - |
Pregunta
Me gustaría imitar el comando Ejecutar de Windows en mi programa. En otras palabras, me gustaría dar al usuario la capacidad de "funcionamiento" una pieza arbitraria de texto tal y como sucedería si se escriben en el cuadro de ejecución.
Mientras System.Diagnostics.Process.Start()
me pone cerca, me parece que no puede conseguir ciertas cosas como las variables de entorno como% AppData% de trabajo. No dejo de hacer llegar el mensaje "Windows no puede encontrar '% AppData%' ..."
Solución
Puede utilizar el Environment.ExpandEnvironmentVariables método para encender% AppData% en lo que en realidad corresponde a.
Otros consejos
Dependiendo de lo que estamos tratando de hacer, se podría también llamar a cmd.exe, que ampliará las variables de entorno de forma automática. El siguiente ejemplo va a hacer un DIR de la carpeta% appdata%, y redirigir la salida estándar para la depuración:
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());