Autor Beitrag
chris_davidi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Windows 98 SE
Delphi 3
BeitragVerfasst: Mi 17.09.03 10:48 
Hallo...

Habe immernoch folgendes Problem. Ich habe eine BAT- Datei welche ausgeführt werden soll... Wenn alles durchgelaufen ist, wird ein Druck einer beliebiger Datei benötigt. Danach soll sich das Ende schließen.

Meine Frage, wie kann ich es unter Delphi schaffen, das meine BAT- Datei gestartet wird, am Ende der Druck irgendeiner Taste passiert und es sich am Ende schließt, dass Fenster.

Habe mit einigen Sachen rumprobiert... Bin aber noch immer auf keine Lösung gekommen.

Hat jemand von euch einen Rat? Oder einen Code...? Bin echt hilfslos... :(

Vielen Dank im Vorraus
Gruss Chris

Moderiert von user profile iconTino: Titel geändert & Topic verschoben.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.09.03 11:12 
Starte den Kommandointerpreter mit deiner Batch-Datei als Parameter mit ShellexecuteEx oder CreateProcess. Dann bekommst du Prozess-Handle welches du WaitForSingleObject übergeben kannst und warten bis der Prozess beendet ist. Code dazu gibt es in den FAQ.
chris_davidi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Windows 98 SE
Delphi 3
BeitragVerfasst: Mi 17.09.03 11:27 
Was ist ein Kommandointerpreter? Wie geht das? Kannst du mir den Code dazu machen, oder einen Link geben, wo das genauer erklärt wird? Habe es in der FAQ nicht gefunden... :(
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.09.03 11:34 
Unter Windows9x heißt er command.com und unter NTff. cmd.com. Deswegen hab eich allgemein Kommandointerpreter geschrieben.
chris_davidi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Windows 98 SE
Delphi 3
BeitragVerfasst: Mi 17.09.03 12:34 
Ok...

Mit

ausblenden Delphi-Quelltext
1:
ShellExecute(Application.Handle, 'open''command.com'nilnil, SW_SHOW);					


Kann ich den Kommandointerpreter ja dann starten, aber wie übergebe ich es, dass er meine Batch-Datei startet? Und wie erhalte ich dann das Fenster Handle? Kannst du mir da auch helfen? Wäre nett. :)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.09.03 12:40 
Ich habe gesagt ShellexecuteEX oder CreateProcess. Beide haben eine Parameterliste und zu beiden gibt es in den FAQ ein Beispiel.
chris_davidi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Windows 98 SE
Delphi 3
BeitragVerfasst: Mi 17.09.03 12:53 
Über ShellexecuteEX steht nichts in der FAQ. Darum meinte ich, dass du ShellExecute meinst.

Oder meintest du diesen Beitrag der FAQ?
www.delphi-forum.de/viewtopic.php?t=2887

Werde aus dem leider gar nicht schlau...
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.09.03 13:00 
chris_davidi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Windows 98 SE
Delphi 3
BeitragVerfasst: Mi 17.09.03 13:08 
Und wie öffne binde ich CreateProcess dann ein, also zum Beispiel nach einem ButtonClick?

ausblenden Delphi-Quelltext
1:
CreateProcess('test.bat');					


Wie lautet der Code dazu, CreateProcess anzuwenden?
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.09.03 13:14 
Könnte mal bitte jemand übernehmen? Ich gebe auf.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.09.03 14:00 
Ich übernehme ... *zur Stelle eilt* ... @chris_davidi: Am einfachsten kommst du weg, indem du dir mal die vorhandenen Beispiele anschaust. Ich war mal so nett, dir ein Beispiel rauszusuchen, dass du dir bitte ansiehst und dann 1:1 kopieren kannst:

Programme starten ohne ShellExecute (DP)

Beim nächsten Mal bitte etwas mehr Eigeninitiative, sonst bin ich der Erste (oder vielleicht der Nächste ...), der deine Fragen künftig ignorieren wird.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 17.09.03 14:06 
chris_davidi hat folgendes geschrieben:
Wie lautet der Code dazu, CreateProcess anzuwenden?

Den Link den Luckie gepostet hat zeigt dir eine Funktion die du so aufrufen kannst:
ausblenden Delphi-Quelltext
1:
RunProcessAndWait ('test.bat');					

Gruß
Tino
Licki
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 132

Knoppix, Win 95, Win 2000, Win NT, Win 98, Win XP
Delphi 3
BeitragVerfasst: Mi 17.09.03 17:22 
Ja, chris_davidi, das ist eigentlich relativ einfach. Eine Datei auszuführen und warten lassen, bis diese beendet ist und danach die nächste zu starten. Dafür gibt es einige Funktionen, viele sind davon im Netz zu finden, wenn du welche brauchst, PM an mich. ;)

Aber meiner Meinung nach ist das ja nicht sein Problem, das Problem liegt denke ich laut seiner Aussage daran, die Batch-Datei zu schließen nachdem alles abgelaufen ist? Wie Lucki sagt, mit einem Fenster-Handle. Persönlich weiß ich leider nicht wie das geht (die Logik ist aber klar), würde mich aber selbst auch interessieren.