Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Konsole in GUI-Anwendung?! (https://www.delphipraxis.net/92227-konsole-gui-anwendung.html)

Coolspot 16. Mai 2007 14:02


Konsole in GUI-Anwendung?!
 
Hallöchen,
Ich hab mal ne klitzekleine Frage :)

Also ich habe ein Programm, welches die lame.exe dafür verwendet, wav-Dateien in mp3-Dateien umzuwandeln. Es gibt eine Liste von umzuwandelden Dateien, die nach und nach abgearbeitet wird.
Es wird der Prozess geöffnet und ab dann checkt das Programm jede halbe Sekunde, ob der Prozess noch existiert, sobald der Prozess "lame.exe" nicht mehr existiert, startet das Programm die Umwandlung der nächsten Datei. Das Ganze funktioniert ganz gut, aber aus optischen und programmiertechnischen Gründen wollt ich das Ganze optimieren.

Ich würde gerne in meiner GUI ein Textfeld einfügen, in der die aktuellen Operationen der Konsolenanwendung "lime.exe" angezeigt werden. Ich will sozusagen eine Anwendung in meiner Anwendung ausführen, sodass nicht immer das Dos-Fenster erscheint.

Ich bin dankbar für alle Vorschläge, die ihr mir macht, ihr könnt mir auch alternative Möglichkeiten nennen ^^
(Ausser die Umwandlung direkt in meiner Anwendung zu machen, dazu bin ich schlichtweg zu blöd ^^)

Danke !!

DGL-luke 16. Mai 2007 14:14

Re: Konsole in GUI-Anwendung?!
 
Hallo,

ich glaube du kannst die Ausgabe des prozesses auf eine pipe umleiten. irgendwie so:

Code:
lame.exe --param --param value > \\pipe\lamepipe\
nur die syntax weiß ich nicht. die pipe kannst du dann auslesen.

Coolspot 16. Mai 2007 14:15

Re: Konsole in GUI-Anwendung?!
 
hört sich schon mal gut an, aber ich weiß darüber leider rein gar nichts ^^ also ich kann damit nichts anfangen

danke erstmal!

Robert Marquardt 16. Mai 2007 14:16

Re: Konsole in GUI-Anwendung?!
 
Schau dir mal den Installer der JCL bzw. JVCL an. Dort ist alles enthalten was man dazu braucht, denn es wird dcc32.exe von Delphi versklavt.

Nikolas 16. Mai 2007 14:22

Re: Konsole in GUI-Anwendung?!
 
Such mal nach ShellexecuteAndWait Diesem Befehl kannst du die gleichen Befehle wie Shellexecute übergeben, aber noch einstellen, dass auf des Ende des Programms gewartet werden soll. Dann könntest du damit ShellexecuteAndWait(0,'lame.exe',pchar(/c Dateiname),Ziel,SW_Hide,true)) aufrufen (oder so ähnlich. wichtig ist nur das /c, dass die Konsole nach der Abarbeitung des Befehls wieder schließt.)
Das kannst du dann in eine Schleife packen.

CCRDude 16. Mai 2007 14:34

Re: Konsole in GUI-Anwendung?!
 
TDosCommand wäre auch eine bequeme OO-Version, die jede einzelne Zeile bequem per Event zurückmeldet.

Die Muhkuh 16. Mai 2007 14:35

Re: Konsole in GUI-Anwendung?!
 
nimm doch einfach die DLL und nicht die Exe ;-)

Coolspot 16. Mai 2007 14:36

Re: Konsole in GUI-Anwendung?!
 
Danke für die Antworten, die Antwort von Nikolas macht es natürlich einfacher, aber ich will ja, dass der Fortschritt in einem Memo angezeigt wird und das geht ja dann nicht. mit RunCaptured gehts auch nich, da dann bis zum Ende des Programms gewartet wird, bis es ausgegeben wird. Trotzdem Danke, ich hab mir erstmal die JEDI Kompos gesaugt.

Nikolas 16. Mai 2007 15:01

Re: Konsole in GUI-Anwendung?!
 
willst du den Fortschritt in einer einzelnen Dateiumwandlung oder für deine ganze Sammlung?

Coolspot 16. Mai 2007 15:12

Re: Konsole in GUI-Anwendung?!
 
der einzelnen Umwandlung

EDIT:
Also die JCL/JVCL kompos bekomm ich nich installiert, weder mit install.bat, noch manuell, ich brauch also ne andere Möglichkeit, oder ich überlege wirklich das Ganze über die DLL zu machen, aber da hab ich wirklich 0 Ahnung, hab noch nie mit DLLs gearbeitet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 Uhr.
Seite 1 von 2  1 2      

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