Laden...

Rückgabewert von Anwendung

Erstellt von budili vor 16 Jahren Letzter Beitrag vor 16 Jahren 2.072 Views
B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren
Rückgabewert von Anwendung

Moin Leute,

ich habe eine externe Anwendung die ich in meinem Programm ansteuere,
dieses externe Progrämmchen gibt auf der Kommandozeile einen Status/String
aus. Kann ich mir diesen String irgendwie ausgeben lassen?

Danke

Gruß
Budi

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

G
42 Beiträge seit 2005
vor 16 Jahren

Hi,

eventuell hilft dir dieser Beitrag:

Rückgabewert einer Applikation

Gruß, Gloki

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Hmm habs jetzt mal versucht mit

Environment.ExitCode

aber bekomme da nur eine "0" ausgegeben und nicht das,
was das Programm eigentlich auf der Kommandozeile ausgibt.

Ich will ja nicht den Rückgabewert der main-funktion, sondern das auf
der Kommandozeile ...

Falls das überhaupt geht ... 8)

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

G
42 Beiträge seit 2005
vor 16 Jahren

Also, wenn ich dich richtig verstehe, dann willst du einen Wert aus der Konsole auslesen?

Hab ich leider auch noch nicht gemacht, aber vieleicht hilft ja dieser Beitrag:

Invormationen aus cmd abfragen

B
1.529 Beiträge seit 2006
vor 16 Jahren

Da du die externe Anwendung ja sicherlich per Process startest, wäre es naheliegend gewesen, dort auch zu suchen => Process.ExitCode

B
budili Themenstarter:in
171 Beiträge seit 2007
vor 16 Jahren

Danke erstmal.

Ich woll mir die Konsolenausgabe live in einem Control (z.B. Textbox etc.)
anzeigen lassen. Habe das mal so versucht:


            ProcessStartInfo startInfo = new ProcessStartInfo(sPathAnalyzer, sArguments);
            startInfo.CreateNoWindow = true;
            startInfo.RedirectStandardOutput = true;
            startInfo.UseShellExecute = false;

            Process myProcess = new Process();
            myProcess.OutputDataReceived += new                  DataReceivedEventHandler(myProcess_OutputDataReceived);

                myProcess = Process.Start(startInfo);
                myProcess.BeginOutputReadLine();

                myProcess.WaitForExit();
                // wartet eine unbestimmte Zeit, bis der Prozess beendet wurde
                myProcess.Close();

void myProcess_OutputDataReceived(object sender, DataReceivedEventArgs e)
        {
            OutputCmd = e.Data;
        }

Nur klappt die Ausgabe auf der mainform nicht so ganz.
Wenn ich mir das in einem Control ausgeben lasse, dann bleibt dieser leer.

Habe das vorhin statisch gemacht mit:


String OutputCmd = myProcess.StandardOutput.ReadToEnd();

das hat funktioniert, aber das er es live überträgt, hat irgendwie nicht hingehauen.

Weiß jemand woran das liegen könnte ? bzw. was mache ich falsch ...

Gruß
Budi

Nimm das Leben nicht zu ernst - denn du kommst nicht lebend raus!

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo budili,

Console als Steuerelement einbinden.

herbivore