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

¿Fue útil?

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());
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top