Mimic von Windows' 'Start' Fenster in .NET
-
03-10-2019 - |
Frage
Ich mag den Befehl Ausführen in Windows in meinem Programm imitieren. Mit anderen Worten, würde Ich mag dem Benutzer die Möglichkeit zu „run“ einem beliebigen Stück Text geben, genau so, wie geschehen würde, wenn sie es in das Lauffeld eingegeben.
Während System.Diagnostics.Process.Start()
mir nahe kommt, kann ich bestimmte Dinge nicht scheinen, wie Umgebungsvariablen zu erhalten, wie beispielsweise% AppData% arbeiten. Ich halte gerade die Nachricht bekommen „Windows kann nicht finden,‚% AppData%‘...“
Lösung
Sie können mit dem Environment.ExpandEnvironmentVariables Verfahren einzuschalten% AppData% in dem, was sie tatsächlich entspricht.
Andere Tipps
Je nachdem, was Sie versuchen zu tun, könnten Sie auch cmd.exe nennen, die Ihre Umgebungsvariablen erweitern automatisch. Das folgende Beispiel wird tun, um ein SICH Ihr% AppData% -Ordner, und leitet die STDOUT- an den 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());