![]() |
Ausgabe eines DOS-Programmes
Hi,
ich habe bereits gesucht und auch was [dp="CaptureDOSCommand"]gefunden[/dp]. Allerdings funktioniert das nicht, wenn der User Eingaben machen muss. Was durchaus vorkommen kann. Also wollte ich mich dem alten DOS-Trick bedienen und mit Hilfe von > die Ausgaben in eine Datei umleiten, um die Ausgabe zu erhalten aber gleichzeitig die Abfragen mitzubekommen. Also habe ich mir den String zusammengebastelt, der den Befehl enthalten soll und die Parameter angefügt und versucht mit Hilfe von ShellExecute das ganze auszuführen. Das hat allerdings nicht funktioniert, weil die Ausgabe-Datei nicht erzeugt wurde. Dann habe ich es wie in dem gefundenen Source mit CreateProcess versucht. Das sieht dann so aus:
Delphi-Quellcode:
Allerdings funktioniert das mit der gleichen Folge nicht: die Datei wird nicht erstellt.
var
sCommand: string; Startup: TStartUpInfo; ProcessInfo: TProcessInformation; begin {...} FillChar(Startup,Sizeof(Startup),#0); Startup.cb := SizeOf(Startup); Startup.dwFlags := STARTF_USESTDHANDLES + STARTF_USESHOWWINDOW; Startup.wShowWindow := SW_SHOW; CreateProcess(nil, PChar(sCommand), nil, nil, true, NORMAL_PRIORITY_CLASS, nil, nil, Startup, ProcessInfo); {...} end; Das Problem ist nur, dass auch der Befehl an sich nicht ausgeführt wird, obwohl in dem Testfall keine Abfragen an den User gestellt werden. :? Der Befehls-String sieht z.B. so aus:
Code:
Wenn ich das in der Eingabeaufforderung das ganze ausführe, funktioniert das wunderbar.
xcopy.exe "D:\Coden\work in progress\Xcopy-GUI\Source\*.pas" "D:\Coden\work in progress\Xcopy-GUI\Temp\" /Y > output.log
Hat jemand dafür eine Erklärung/Lösung des ursprünglichen Problems, dass ich die Ausgabe brauche, aber trotzdem die Abfragen des Programms eingeben will (meinetwegen auch automatisch)? Danke für jede Hilfe, Chris |
Re: Ausgabe eines DOS-Programmes
Ich weiß jetzt nicht , ob du auch für ne andere Lösung offen bist, aber auf Delphi-Source hab ich
![]() |
Re: Ausgabe eines DOS-Programmes
Hi,
das sieht schonmal ganz gut aus. :) Danke, Chris |
Re: Ausgabe eines DOS-Programmes
Hi,
oder auch nicht. :? Jetzt wird zwar die Datei erstellt, aber in der steht nichts drin und außerdem wird der Befehl nicht ausgeführt. Also geht die Suche weiter... Chris |
Re: Ausgabe eines DOS-Programmes
|
Re: Ausgabe eines DOS-Programmes
Hi,
ich habe jetzt ein einfach ShellExecute genommen und den Befehl über die cmd.exe ausgeführt. Nach ein wenig herumspielen hat's dann auch funktioniert. :) Danke für eure Hilfe, Chris |
Re: Ausgabe eines DOS-Programmes
o_O über pipes is das doch viel cooler ^^
|
Re: Ausgabe eines DOS-Programmes
Hi,
allerdings hat bisher keine Lösung über Pipes funktioniert. ;) Und soweit funktioniert das ja und das sollte im Moment erstmal reichen. ;) Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:43 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