Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi CreateProcess / Abfrage ob Process vollständig geladen wurde (https://www.delphipraxis.net/50874-createprocess-abfrage-ob-process-vollstaendig-geladen-wurde.html)

Sven Janssen 2. Aug 2005 08:05


CreateProcess / Abfrage ob Process vollständig geladen wurde
 
Moin,

ich wurde gern ein Statusnachricht solange anzeigen bis das Program welches mittels CreateProcess gestartet wurde vollständig geladen ist.
Ich hab schon ein wenig in der API gesucht, aber nichts wirkliches gefunden.WaitForSingleObject wartet n Millisekunden, oder bei INFINITE solange bis der Process wieder beendet wurde.

Jemand ne Idee?

Sven

Bernhard Geyer 2. Aug 2005 08:14

Re: CreateProcess / Abfrage ob Process vollständig geladen w
 
Was bedeutet für dich "vollständig geladen"?
Ich denke mal da wird der gestartete Prozess auch mitspielen müssen (Event oder ähnliches Auslösen wenn er vollständig (initialisiert) ist.

Basilikum 2. Aug 2005 08:22

Re: CreateProcess / Abfrage ob Process vollständig geladen w
 
schau Dir mal MSDN-Library durchsuchenWaitForInputIdle an; aber wie bereits erwähnt, kommt es dabei auch auf das genaue Verhalten des gestarteten Prozesses an

Sven Janssen 2. Aug 2005 08:28

Re: CreateProcess / Abfrage ob Process vollständig geladen w
 
Vollständig geladen bedeutet für mich auf dem Schirm sichtbar.

Sven

Olli 2. Aug 2005 08:48

Re: CreateProcess / Abfrage ob Process vollständig geladen w
 
Zitat:

Zitat von Sven Janssen
Vollständig geladen bedeutet für mich auf dem Schirm sichtbar.

Darüber gibt es kein Feedback. Der PE-Loader ist in dem Moment fertig, wo der suspendierte Hauptthread des (neuen) Prozesses angeschoben wird.

Außerdem gibt es Programme, welche nie auf dem Bildschirm sichtbar werden, was dir wiederum aufzeigen dürfte, daß deine Fragestellung löchrig ist.

andimx 2. Aug 2005 08:58

Re: CreateProcess / Abfrage ob Process vollständig geladen w
 
Hier mal ein paar Ideen:

1) Du kennst den Prozessnamen: Lad die die Prozessliste und schau nach ob der Prozess sich darin befindet.

2) Du kennst den Namen des Prozesses. Versuch mit FindWindow das Fenster zu suchen, ist es gefunden ist der Prozess da und sichtbar.

Sven Janssen 2. Aug 2005 10:44

Re: CreateProcess / Abfrage ob Process vollständig geladen w
 
Zitat:

Zitat von andimx
Hier mal ein paar Ideen:

1) Du kennst den Prozessnamen: Lad die die Prozessliste und schau nach ob der Prozess sich darin befindet.

2) Du kennst den Namen des Prozesses. Versuch mit FindWindow das Fenster zu suchen, ist es gefunden ist der Prozess da und sichtbar.

1 wäre machbar. 2 ist so heikel, da die Fenstertitel auch geändert werden können und vorallem geht es nicht um ein, sondern um ca 30 -50 Programm ;-)

@Olli
So wie ich die Doku WaitForInputIdle gelesen hab berücksichtigt er dies. Ich teste das nachher einmal

Sven

Olli 2. Aug 2005 11:52

Re: CreateProcess / Abfrage ob Process vollständig geladen w
 
Zitat:

Zitat von Sven Janssen
@Olli
So wie ich die Doku WaitForInputIdle gelesen hab berücksichtigt er dies. Ich teste das nachher einmal

Richtig:
Zitat:

Handle to the process. If this process is a console application or does not have a message queue, WaitForInputIdle returns immediately.
Aber damit ist doch der Nutzen auch wieder weg?! :gruebel:

Die sicherste Methode wäre, wenn du in dem anderen Prozess auch was machen könntest, kannst du aber sicher nicht, oder?


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