![]() |
Programm starten und auf Programmende warten
Hallöchen,
ich habe mal wieder ein Problem ;-) Ich würde gerne ein Programm starten, z.B. den Taschenrechner von Windows, und dann, wenn der Taschenrechner wieder geschlossen wurde, mit meinem Programm eine ShowMessage() ausgeben. Das Programm wird mit ShellExecute gestartet (ist klar), aber wie bekomme ich heraus, ob das Programm noch aktiv ist. Mit der Window-Caption kann man leider nicht arbeiten, weil man das in meinem Programm nicht hardcoden kann/darf. Für Links im Forum hier bin ich auch dankbar, aber ich hab keinen Ansatz dafür, was ich machen kann oder womit ich arbeiten könnte. Von dieser Thenmatik verstehe ich noch recht wenig :-/ Danke wie immer für eure Hilfe :-) Liebe Grüße Aike |
Re: Programm starten und auf Programmende warten
shellexecuteandwait
[edit] shellexecuteandwait hab ich mal gelesen, das gibt es bei mir nicht. Fürs erste kannst du mal das machen:
Delphi-Quellcode:
[/edit]
shellexecute(form1.Handle,'open',pansichar('calc.exe'),nil,nil,0);
|
Re: Programm starten und auf Programmende warten
|
Re: Programm starten und auf Programmende warten
|
Re: Programm starten und auf Programmende warten
Liste der Anhänge anzeigen (Anzahl: 1)
Hier eine Unit von Olli:
|
Re: Programm starten und auf Programmende warten
Hi!
Schau mal in der Suche nach! Ich kann mich erinnern, dass es vor kurzem (vor ein, zwei Tagen) schon mal so was ähnliches gefragt worden ist (Hier war es das gleiche nur mit notepad.exe)! |
Re: Programm starten und auf Programmende warten
Das Problem an der ShellApiEx ist, dass mein Programm so lange "in der Luft hängt", bis das Programm beendet wurde. Wenn man also ein anderes Fenster über das meinige zieht, dann verschwinden alle Elemente aus der Listbox (wie bei einem hängengebliebenen Programm). Das finde ich aber ... uncool ;p
[edit]Das war übringes auch das Problem in dem anderen ![]() |
Re: Programm starten und auf Programmende warten
Das it ja geade der Sinn dieser Codes, daß die Befehler auf das Beenden des aufgerufenen Programms warten ^^
Du kannst aber den Programmaufruf in einen Anderen Thread auslagern, somit kann der Hauptthread unbehelligt weiterarbeiten. Notfalls machst du dir auch einfach 'ne Schleife in den Hauptthread, welche solange wartet, bis der Thread (mit dem Programmaufruf fertig ist). Und in diese Schleife dann ein Application.ProgressMessages und ein Sleep(100), oder sowas in der Art. |
Re: Programm starten und auf Programmende warten
Hinters
Delphi-Quellcode:
am besten immer ein
application.processmessages
Delphi-Quellcode:
Damit der User das Programm auch beenden kann, während es in der Schleife wartet.
if application.terminated then exit;
|
Re: Programm starten und auf Programmende warten
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:58 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