Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Dos-Programm in Fensterapplikaion anzeigen (https://www.delphipraxis.net/92349-dos-programm-fensterapplikaion-anzeigen.html)

MacGuyver 18. Mai 2007 11:09


Dos-Programm in Fensterapplikaion anzeigen
 
Moin Leute :hi:

Ich habe ein Dos-Programm und möchte das Teil so starten, daß ich es in meiner Application angezeigt wird. Ich möchte nicht extra ein neues Fenster haben, sondern in meiner Delphiapplication. Wenn man dann noch den Zeichensatz festlegen kann und mitbekommt, wenn das Dos-Programm geschlossen wird, wäre das genau das, was ich suche. Hat jemand eine Idee?

Dank im Voraus



Stefan

CCRDude 18. Mai 2007 11:16

Re: Dos-Programm in Fensterapplikaion anzeigen
 
TDosCommand

MacGuyver 18. Mai 2007 11:52

Re: Dos-Programm in Fensterapplikaion anzeigen
 
@CCRDude: Danke für deine schnelle Antwort.

Mit dem Teil habe ich auch geliebäugelt. Ich benötige eine Ansicht wie in einem Konsolenfenster, mit TDosCommand kommt nur der reine Text zurück.

Nein, es soll quasi das Konsolenfenster ersetzten.

Klaus01 18. Mai 2007 13:21

Re: Dos-Programm in Fensterapplikaion anzeigen
 
Hier findest Du einen Beitrag von Sir Thornberry
indem ein Beispiel ist wie das ganze über Pipes geregelt wird.

Aber was stört Dich denn an TDosCommand, eine Console ist doch auch nur eine Textumgebung.

Grüße
Klaus

CCRDude 18. Mai 2007 13:28

Re: Dos-Programm in Fensterapplikaion anzeigen
 
Hmmm... meinst Du mit "das Konsolenfenster komplett ersetzen", daß auch Interaktion möglich sein muß?

Für den Fall würde ich sogar wieder ein paar Schritte zurückgehen, das Programm weiterhin "normal" extern starten und dann per SetWindowParent (o.ä.) das Konsolenfenster in ein TPanel reinmogeln. Zumindest hab ich das mal so gemacht, als ich das auf die schnelle brauchte, weil eine Komponente, die ein interaktives Terminal anbietet, mir da fremd war (und noch ist) ;)

MacGuyver 18. Mai 2007 14:12

Re: Dos-Programm in Fensterapplikaion anzeigen
 
Ja, danke CCRDude.

Ich habe einen Eintrag von Shaman gefunden, wo er die Konsole auf ein TControl bindet und dabei den Rahmen überdeckt. Kein Rahmen, keine Ziehen und Verschieben. Irgendwie klappt das noch nicht so unter XP.

Hast du für mich vielleicht Beispielcode?

idontwantaname 18. Mai 2007 14:26

Re: Dos-Programm in Fensterapplikaion anzeigen
 
Und inwiefern klappt es nicht? Irgendwie so ist nicht gerade eine sehr hilfreiche Fehlerbeschreibung.

MacGuyver 18. Mai 2007 14:47

Re: Dos-Programm in Fensterapplikaion anzeigen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Oh, klar, ich habe da mal etwas zusammengepack: Die HelloWrl.Exe nach C:\ kopieren und Gas geben. Das Fenster steht nicht oben links in der Ecke.

Ach ja, Delphi5 Pro

CCRDude 18. Mai 2007 14:50

Re: Dos-Programm in Fensterapplikaion anzeigen
 
Naja, was dabei typischerweise nicht klappt, liegt daran, daß cmd.exe noch einen anderen Fenstertyp zu haben scheint als so ziemlich jedes andere Fenster. Mein Code von damals schafft es momentan leider auch nicht, aher nur zwei Ansätze: per FindWindow (oder aus SHELLEXECUTEINFO bei Verwendung von ShellExecuteEx ?) das Handle des ausgeführten cmd.exe nehmen, und per Windows.SetParent(h, panelTest.Handle); den Parent setzen. Das Handle aus FindWindow klappt unter meinem 64bittigen XP gerade auch nicht :?

Idee: schau mal das Projekt Console2 bei Sourceforge an... dürfte zwar C sein, macht das aber sehr elegant und funktionierend.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz