Wenn ich den folgenden Befehl in einer Eingabeaufforderung ausführen, funktioniert es:Argument für Process braucht Zitate, immer entkommt
"C:\Program Files (x86)\AppFolder\do.exe"
Wenn ich versuche, das gleiche wie ein Prozess auszuführen:
ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = @"/c ""C:\Program Files (x86)\AppFolder\do.exe""";
using (Process process = Process.Start(startInfo))
{
...
}
Es scheint nicht zu laufen. Wenn ich mir die startInfo.Arguments anschaue, sieht es so aus:
/c \"C:\\Program Files (x86)\\AppFolder\\do.exe\"
Was fehlt mir? Können Sie keine Argumente mit Anführungszeichen oder Leerzeichen übergeben? Ich sehe viele Beispiele, in denen Leute Gegenstände mit Leerzeichen/Anführungszeichen gut weiterreichen, aber ihnen zu folgen scheint einfach nicht zu funktionieren. Dies ist das engste Beispiel, das mir einfällt.
EDIT: Wenn ich nur eine Verknüpfung erstellen, so dass ich, keine Leerzeichen oder Anführungszeichen verwenden es funktioniert:
startInfo.Arguments = @"/c D:\_test\Do.lnk";
_Es scheint nicht zu laufen._ Wie scheint es nicht zu laufen? Versuchen Sie, den Stil des ausgeblendeten Fensters zu entfernen und ändern Sie die Option "/ c" in eine Option "/ k". Ich wette, Sie werden eine Fehlermeldung in dem Konsolenfenster sehen, das jetzt verweilt. –