En Direct de la sortie du Processus

J'ai un problème dans mon projet. Je voudrais lancer un processus, 7z.exe (version console).
J'ai essayé trois choses différentes:

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

Rien ne fonctionne. Il est toujours "attendre" la fin du processus pour montrer ce que je veux.
Je n'ai pas de code pour mettre, simplement si vous voulez mon code avec l'une des choses énumérées upthere. Merci.

Edit:
Mon 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);
            }
        }

Ou

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);
}

Ou

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

Où "processus" est mon pré-Processus

Ok, je sais pas pourquoi ça ne fonctionne pas correctement: 7z.exe est le bug: il affiche un pourcentage de chargement de la console, et il envoie des informations uniquement lorsque le fichier en cours est terminé. Dans l'extraction, par exemple, il fonctionne très bien :). Je vais chercher un autre moyen d'utiliser 7z fonctions sans 7z.exe (peut-être avec 7za.exe ou avec une DLL). Merci à tous.
Pour répondre à la question, OuputDataRecieved événement fonctionne très bien !

  • une raison quelconque vous n'utilisez pas le DLL/SDK downloadabe de 7zip qui permet un contrôle beaucoup plus grand que n'importe quelle console basée sur la technique ?
  • Elle permettrait de voir le code que vous avez essayé avec un Processus où, par exemple, vous créez le Processus de
  • Parce que 7z.exe couvre toutes les fonctions que je voulais.
  • Jusqu' ? J'ai vraiment besoin d'aide. Je vais trie avec cmd. Je pense que le problème vient de la 7z.exe.
InformationsquelleAutor Extaze | 2012-01-10