Ist es möglich, eine DOS-Konsole in einem Windows Form oder Benutzersteuerelement in C# 2.0 einzubetten?Embedding eine DOS-Konsole in einem Windows-Formular
Wir haben ein Legacy-DOS-Produkt, mit dem meine Windows-App interagieren muss, und es wurde angefordert, dass eine Instanz des Legacy-Produkts in der Windows-Anwendung ausgeführt werden sollte.
Momentan benutze ich die user32.dll, um das Fenster zu finden, in dem das DOS-Produkt läuft, Minimierung, Maximierung des Fensters und Eingabe von Zeichen in das Fenster. Dies ist keine sehr gute Lösung für das Problem, da dies bedeutet, dass meine Anwendung den Fensternamen in den Anwendungseinstellungen speichern muss und dass der Benutzer zur richtigen Seite der DOS-Anwendung zurückkehren muss, bevor er die Interaktionsfunktion verwendet.
EDIT: Einige weitere Informationen
Das Vermächtnis App muss für den Benutzer sichtbar sein, aber nicht in einem separaten Fenster.
Ich habe versucht TimothyP's Antwort und es funktioniert sehr gut, aber ist es möglich, die gleiche Funktionalität zu erreichen, aber mit dem DOS-Fenster visuell in einem Windows-Formular oder Benutzersteuerung eingebettet, anstatt in seinem eigenen Fenster auftauchen? Vorzugsweise in einer ShowDialog() - Weise, so dass der Benutzer nicht mit der App interagieren kann, wenn sie sich sozusagen im "Legacy-Modus" befinden.
Wie verwende ich den 'outputReader' mit einer Anwendung, die ständig ausgeführt und ausgegeben wird, bis der Benutzer existiert? So etwas wie ein Nodejs-HTTP-Server, bei dem jedes Mal, wenn eine Anfrage gestellt wird, eine neue Zeile ausgegeben wird? – Ace