![]() |
warten bis anwendung gestartet wird...
hallo leute, hab da mal ne frage...
also ich möchte, dass mein progg wartet bis zB der IE geöffnet wird und dann sollen erst meine funktionen ausgeführt werden...geht sowas? also ich könne ja checken lasses ob die iexplorer.exe bereits ausgeführt ist und dann erst loslegen. dachte vielleicht gibts dafür ne function.. ? thx cu agm65 |
Re: warten bis anwendung gestartet wird...
Vielleicht hilft dir das hier:
Delphi-Quellcode:
Ich glaue ich habs sogar hier aus dem Forum...
uses ..., tlhelp32 ...
function GetProcessID(sProcName: String): Integer; var hProcSnap: THandle; pe32: TProcessEntry32; begin result := -1; hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); if hProcSnap = INVALID_HANDLE_VALUE then exit; pe32.dwSize := SizeOf(ProcessEntry32); //wenn es geklappt hat if Process32First(hProcSnap, pe32) = true then //Prozess suchen while Process32Next(hProcSnap, pe32) = true do begin if pos(sProcName, pe32.szExeFile) <> 0 then result := pe32.th32ProcessID; end; CloseHandle(hProcSnap); end; |
Re: warten bis anwendung gestartet wird...
![]() ![]() @Mr_G: Auf NT4 wird das nicht gehen ;) |
Re: warten bis anwendung gestartet wird...
@Mr_G: außerdem müsstest du eine repeat-until-scheilfe nehmen da du sonst den ersten prozess den du bereits mit Process32Fist überspringst bei der Prüfung
|
Re: warten bis anwendung gestartet wird...
Moin Olli,
Zitat:
Letzteres ist ja schliesslich genau dafür da zu warten, bis der Prozess auf anwenderseitige Eingaben wartet. |
Re: warten bis anwendung gestartet wird...
danke jungs ich werde das heute abend mal testen ...
|
Re: warten bis anwendung gestartet wird...
@Christian Seehase: Das ist trotzdem nicht eindeutig. Grund sind da die bösen Programmierer von diversen Programmen. Hat man zum Beispiel einen Splashscreen und aktuallisiert den mit Application.ProcessMessages so werden die ersten Nachrichten abgearbeitet und für Windows müsste es so aussehen als ob das Programm jetzt fertig geladen ist und auf nutzereingaben wartet.
|
Re: warten bis anwendung gestartet wird...
Zitat:
Zitat:
|
Re: warten bis anwendung gestartet wird...
Zitat:
P.S.: Hab mich nicht wirklich damit auseinander gesetzt. :oops: War nur eine Function die im Rahmen des Prozessekillens brauchte... |
Re: warten bis anwendung gestartet wird...
woran macht dann die funktion WaitForInputIdle intern fest ob die Anwendung fertig ist? Ich hätte gedacht das dies der fall ist sobald die erste message abgearbeitet ist, aber wenn keine message queue vorhanden wäre würde es nach meiner Theorie ewig warten.
@Mr_G:
Delphi-Quellcode:
if Process32First(hProcSnap, pe32) = true then
//An dieser Stelle wurde bereits der erste prozess in pe32 eingelesen while Process32Next(hProcSnap, pe32) = true do //un hier liest du schon den nächsten prozess in pe32 ein. Wenn du also nach dem ersten aufruf (Process32First) in pe32.szExeFile den richtigen Namen hast wird dieser einfach ignoriert und nie gefunden |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:32 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 by Thomas Breitkreuz