Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm starten und warten bis es geladen ist (https://www.delphipraxis.net/32969-programm-starten-und-warten-bis-es-geladen-ist.html)

Helmi 30. Okt 2004 18:57


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

supermuckl 30. Okt 2004 19:00

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

runningsoft 30. Okt 2004 19:03

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.

Jens Schumann 30. Okt 2004 19:13

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.

Helmi 30. Okt 2004 19:21

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:
//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;
das funktioniert ja ohne probleme und ich öffne damit auch Programme.

nur muss ich bei einem Programm wissen ob es schon fertig ist mit dem laden.

mfg
Helmi

Jens Schumann 30. Okt 2004 19:26

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?

Helmi 30. Okt 2004 19:29

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

Dax 30. Okt 2004 19:31

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.

Jens Schumann 30. Okt 2004 19:34

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.

Jens Schumann 30. Okt 2004 19:36

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
UpdateProgramm


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 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