derbe
Lt. Commander
- Registriert
- Aug. 2013
- Beiträge
- 1.773
Hallo zusammen,
mein C# Programm startet mir eine andere Anwendung und zwar diese hier:
Das Programm was gestartet wird ist im grundegenommen eine Dosbox welches ausgaben in Textform hat.
Da dieses Programm relativ lange braucht (mehere Stunden) um etwas zu berechnen möchte ich:
1: Befehl an die Dosbox senden (wenn man an das Programm ein "s" sendet zeigt es den aktuellen status an.) Geht das mit RedirectStandardOutput ?
2: Progress Balken einbauen. (Sollte an sich kein Thema sein wenn nicht 3. wäre..)
3: Mein "Form" also die grafische Oberfläche ist inaktiv solange das Dosboxprogramm rechnet (egal ob man das fenster anzeigen lässt oder nicht).
Ich habe festgestellt das ich mein Programm wie hier recht gut auslesen kann allerdings nicht während die Dosbox läuft sondern, bekomme nur das was angezeigt wird nur NACHDEM es fertig ist.
Ich möchte aber während es noch am Rechnen ist etwas auf dem "Form" also die grafische Oberfläche anzeigen.
Außerdem möchte ich nicht das mein "Form" inaktiv wird, sieht so aus als wäre es abgestürzt da man es nicht mehr verschieben etc. kann.
Für Ideen und Lösungsansätze bin ich dankbar!
mein C# Programm startet mir eine andere Anwendung und zwar diese hier:
Das Programm was gestartet wird ist im grundegenommen eine Dosbox welches ausgaben in Textform hat.
Da dieses Programm relativ lange braucht (mehere Stunden) um etwas zu berechnen möchte ich:
1: Befehl an die Dosbox senden (wenn man an das Programm ein "s" sendet zeigt es den aktuellen status an.) Geht das mit RedirectStandardOutput ?
2: Progress Balken einbauen. (Sollte an sich kein Thema sein wenn nicht 3. wäre..)
3: Mein "Form" also die grafische Oberfläche ist inaktiv solange das Dosboxprogramm rechnet (egal ob man das fenster anzeigen lässt oder nicht).
Ich habe festgestellt das ich mein Programm wie hier recht gut auslesen kann allerdings nicht während die Dosbox läuft sondern, bekomme nur das was angezeigt wird nur NACHDEM es fertig ist.
Ich möchte aber während es noch am Rechnen ist etwas auf dem "Form" also die grafische Oberfläche anzeigen.
Außerdem möchte ich nicht das mein "Form" inaktiv wird, sieht so aus als wäre es abgestürzt da man es nicht mehr verschieben etc. kann.
Code:
using System;
using System.Diagnostics;
using System.IO;
class Program {
static void Main() {
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = @"C:\MeinProgram.exe";
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
using (Process process = Process.Start(start)) {
// Lesen allen Text from Process und gib ihn in der Console aus (als Beispiel)
using (StreamReader reader = process.StandardOutput) {
string result = reader.ReadToEnd();
Console.Write(result);
}
}
}
}
Für Ideen und Lösungsansätze bin ich dankbar!