Holen Sie sich Live-output von Prozess

Ich habe ein problem in meinem Projekt. Ich möchte einen Prozess starten, 7z.exe (Konsolen-version).
Ich habe versucht drei verschiedene Dinge:

  • Prozess.StandardOutput.ReadToEnd();
  • OutputDataReceived & BeginOutputReadLine
  • StreamWriter

Nichts funktioniert. Es ist immer "warten" für das Ende des Prozesses zu zeigen, was ich will.
Ich habe keine Codes zu setzen, nur wenn Sie will, dass mein code durch eines der Dinge, die aufgeführt upthere. Danke.

Bearbeiten:
Mein code:

        process.StartInfo.UseShellExecute = false;
        process.StartInfo.RedirectStandardOutput = true;
        process.StartInfo.CreateNoWindow = true;
        process.Start();

        this.sr = process.StandardOutput;
        while (!sr.EndOfStream)
        {
            String s = sr.ReadLine();
            if (s != "")
            {
                System.Console.WriteLine(DateTime.Now + " - " + s);
            }
        }

Oder

process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.OutputDataReceived += new DataReceivedEventHandler(recieve);
process.StartInfo.CreateNoWindow = true;
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
public void recieve(object e, DataReceivedEventArgs outLine)
{
    System.Console.WriteLine(DateTime.Now + " - " + outLine.Data);
}

Oder

process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
string output = p.StandardOutput.ReadToEnd();
process.WaitForExit();

Wobei "Prozess" ist meine pre-made-Prozess

Ok, ich weiß, warum es nicht funktioniert: 7z.exe ist der bug: es zeigt eine Prozent laden in der Konsole, und es sendet nur Informationen, wenn die aktuelle Datei abgeschlossen ist. Bei der Extraktion zum Beispiel, es funktioniert :). Ich Suche nach einer anderen Art und Weise zu verwenden, 7z-Funktionen ohne 7z.exe (vielleicht mit 7za.exe oder mit einigen DLL). Vielen Dank an alle.
Die Antwort auf die Frage, OuputDataRecieved Veranstaltung funktioniert !

irgendeinem Grund Sie nicht verwenden die DLL/SDK downloadabe von 7zip, die erlaubt viel mehr Kontrolle als jede Konsole-basierte Technik ?
Es würde helfen, zu sehen, den code, den Sie versucht haben, mit Prozess-zum Beispiel, wenn Sie erstellen den Prozess
Da 7z.exe umfasst alle Funktionen, die ich wollte.
? Ich brauche wirklich Hilfe. Ich werde versuche mit cmd. Ich denke, das problem kommt von 7z.exe.

InformationsquelleAutor Extaze | 2012-01-10

Schreibe einen Kommentar