![]() |
Programm starten und warten bis es geladen ist
Hallo,
wie kann ich ein Programm starten und warten bis es geladen ist? ich hab schon mal die DB durchgeschaut aber nix gefunden mfg Helmi |
Re: Programm starten und warten bis es geladen ist
im normalfall wartest du automatisch bis es geladen ist, da es vorher nochnicht funktioniert und auch keine ausgaben machen kann
|
Re: Programm starten und warten bis es geladen ist
Hallo, präzisiere doch mal Deine Frage.
IMHO muss man doch bei jedem Programm nach dem starten warten, bis es geladen ist (ohne dafür etwas zu tun). Ansonsten geht da nicht viel. Oh, da war noch einer schneller. |
Re: Programm starten und warten bis es geladen ist
Hallo,
man könnte vermuten das Helmi aus seinem Programm heraus ein anderes über ShellExecute o. CreateProcess starten möchte. |
Re: Programm starten und warten bis es geladen ist
hallo,
also ich lass mal etwas Code spielen. Mit folgendem Code öffne ich ein Programm:
Code:
das funktioniert ja ohne probleme und ich öffne damit auch Programme.
//Programm öffnen
procedure OpenFile(FileName: string); var c: array[0..800] of Char; begin StrPCopy(c, FileName); ShellExecute(Application.Handle, 'open', c, nil, nil, SW_NORMAL); end; nur muss ich bei einem Programm wissen ob es schon fertig ist mit dem laden. mfg Helmi |
Re: Programm starten und warten bis es geladen ist
Hallo Helmi,
handelt es sich um beliebige Programme oder um ganz bestimmte? D.h. kennst Du die Programme, die gestartet werden können? |
Re: Programm starten und warten bis es geladen ist
ja
es geht um ein bestimmtes also mal kurz den hintergrund erläutern: das prog1 öffnet das prog2 und sendet mit WM_CopyData an das Prog2 noch ein paar Daten bevor sich Prog1 beendet. - Prog2 öffnen - Daten an Prog2 schicken - Prog1 beendet sich selbst daher muss ich wissen ob das prog2 schon komplett geladen wurde damit ich ihm aus dem prog1 noch was zusenden kann bevor prog1 sich beendet das senden etc ist alles kein problem - ich muss nur zuvor wissen ob prog2 schon fertig ist |
Re: Programm starten und warten bis es geladen ist
Ich hatte dieses Problem auch schon, und ich habe es so gelöst, das ich das Programm unter maximaler Systemlast gestartet und die Zeit, die es gebraucht hat, gemessen habe. Diese Zeit habe ich dann zwischen starten und interagieren mit dem Programm gewartet, und bis jetzt funktioniert alles perfekt.
|
Re: Programm starten und warten bis es geladen ist
Hallo,
wenn es um ein bestimmtes Programm geht, dann kennst Du auch den Klassennamen des Hauptfensters. Wenn Du den Klassennamen nicht kennst, dann kannst Du den mit WinSight32 ermitteln. Nach dem Du ShellExecute aufgerufen hast, könntest Du mit Hilfe eines Timers und FindWindow versuchen an das Handle des Fensters heranzukommen (pollen wäre hier das Stichwort). Du läßt den Timer solange feuern, bis Du mit FindWindow ein gültiges Fensterhandle gefunden hast. Wenn das zu startende Programm von Dir ist könnte es auch eine Botschaft an das aufrufende Programm (wenn das auch von Dir ist) schicken. Dann entfällt das Pollen. |
Re: Programm starten und warten bis es geladen ist
Hallo,
mir ist gerade eingefallen das ich zu diesem Thema schon einmal ein Beispiel gepostet habe ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 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