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 Wann hat eine Anwendung fertig geladen? (https://www.delphipraxis.net/89012-wann-hat-eine-anwendung-fertig-geladen.html)

Gecko 24. Mär 2007 17:17


Wann hat eine Anwendung fertig geladen?
 
Hi,

man kann ja mit WinExec() bzw. mit CreateProcess u.a. eine Anwendung starten.
Gibts irgendeinen Weg um festzustellen, wann diese fertig geladen ist, oder müsste ich ständig die CPU überwachen?

ErazerZ 24. Mär 2007 17:22

Re: Wann hat eine Anwendung fertig geladen?
 
Glaub nicht dass das geht und das mit der CPU überwachen ist auch eine blöde Idee.
Oder willst Du prüfen ob das Programm erfolgreich ausgeführt worden ist?

Gecko 24. Mär 2007 18:03

Re: Wann hat eine Anwendung fertig geladen?
 
ShellExecute(Application.Handle,'open',PChar('D:\P rogramme\Unreal Tournament 2004\System\UT2004.exe'),PChar(''),PChar('C:\'),SW _HIDE);

Kann mir jemand sagen warum die App nicht versteckt startet? Bei allem anderen geht es, nur bei Spielen nicht!

MrKnogge 24. Mär 2007 18:06

Re: Wann hat eine Anwendung fertig geladen?
 
Weil deine Spiele wahrscheinlich keine Fenster-Programme sind, sondern selber alles zeichnen und an die Graphikkarte schicken.

Gruß

bitsetter 24. Mär 2007 18:14

Re: Wann hat eine Anwendung fertig geladen?
 
Hallo,

da bin mir nicht ganz sicher, aber du könntest es ja bei CreateProcess mal mit
Delphi-Quellcode:
windows.WaitForInputIdle(...,INFINITE);
versuchen.

ErazerZ 24. Mär 2007 18:17

Re: Wann hat eine Anwendung fertig geladen?
 
Zitat:

Zitat von bitsetter
Hallo,

da bin mir nicht ganz sicher, aber du könntest es ja bei CreateProcess mal mit
Delphi-Quellcode:
windows.WaitForInputIdle(...,INFINITE);
versuchen.

Mit dem wartest du aber bis das Programm beendet wird?

3_of_8 24. Mär 2007 18:23

Re: Wann hat eine Anwendung fertig geladen?
 
@MrKnogge: Kein Fensterprogramm? LOL? Du glaubst doch nicht ernsthaft, dass ein Spiel auf den Desktop zeichnet? Für OpenGL und meines Wissens auch für DirectX brauchst du einen DeviceContext, und dafür braucht man (normalerweise) ein Fenster. Ich glaube es liegt eher daran, dass Spiele gerne mal die Auflösung neu setzen und auch evtl. ihren eigenen Fensterstatus setzen.

Hafish 24. Mär 2007 18:48

Re: Wann hat eine Anwendung fertig geladen?
 
Liegt das evtl daran dass die Spiele Engines das selbst überprüfen und sich im Notfall selbst wiederherstellen?

Ich kenn das von diversen Spielen, dass sie nur im Vollbildmodus laufen, teilweise kommt man nichtmal mehr auf den Desktop zurück.

bitsetter 24. Mär 2007 19:06

Re: Wann hat eine Anwendung fertig geladen?
 
@ErazerZ

nein das war WaitForSingleObject();
Delphi-Quellcode:
WaitForSingleObject(hProcess, INFINITE);


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:35 Uhr.

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