Domanda

Vorrei imitare il comando Esegui di Windows nel mio programma. In altre parole, vorrei dare all'utente la possibilità di "correre" un pezzo arbitrario di testo esattamente come accadrebbe se hanno digitato nella casella Esegui.

Mentre System.Diagnostics.Process.Start() mi si avvicina, non posso sembrare ottenere certe cose come variabili d'ambiente come ad esempio% AppData% di lavoro. Ho appena continuo a ricevere il messaggio "Impossibile trovare '% AppData%' ..."

È stato utile?

Soluzione

È possibile utilizzare la Environment.ExpandEnvironmentVariables metodo per trasformare% AppData% in qualunque corrisponde effettivamente.

Altri suggerimenti

A seconda di quello che stai cercando di fare, si potrebbe anche chiamare cmd.exe, che si espanderà automaticamente le variabili d'ambiente. L'esempio che segue farà un DIR del% cartella% appdata, e reindirizzare lo stdout al debug:

        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());
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top