J’utilise ShellExecuteEx
pour démarrer une application. Après avoir réussi à démarrer la lecture de TShellExecuteInfo.hProcess
pour obtenir un TShellExecuteInfo.hProcess
du processus démarré.
Je voudrais vérifier périodiquement si le processus lancé par mon application est toujours en cours d’exécution. Deux processus ou plus avec le même nom peuvent être exécutés simultanément et je veux être sûr que mon application vérifie le processus correct.
Je veux pouvoir le faire sur les systèmes Windows de Windows 2000 à ci-dessus.
Je sais qu’il existe WinAPI fonction GetProcessId
qui fait exactement ce que je veux, mais ne supporte pas Windows 2000.
Merci pour vos réponses.
Appelez WaitForSingleObject
sur cette poignée et utilisez un paramètre de délai d’attente égal à zéro. Si le processus est toujours en cours d’exécution, la fonction retournera Wait_Timeout
; si le processus est terminé, il renverra Wait_Object_0
(car la terminaison du processus provoque la signalisation de ses poignées).
Si vous souhaitez connaître le statut de sortie du processus, appelez GetExitCodeProcess
.