Question

Je remarque un gestionnaire d'applications lorsque j'utilise la fonction shell pour l'ouvrir. J'utilise ensuite cette poignée pour fermer l'application plus tard. Cependant, l'utilisateur peut également fermer cette autre application lui-même. Ce descripteur peut-il être réutilisé par Windows afin que, lorsque j'utilise ce descripteur, je ferme un processus différent? Si c'est possible, est-ce probable?

Était-ce utile?

La solution

Non, vous n'avez pas à vous en soucier. Le descripteur renvoyé par, par exemple, OpenProcess, ShellExecuteEx () ou CreateProcess conserve l'objet de processus en vie. C’est ainsi qu’il est possible d’appeler GetExitCodeProcess () pour récupérer le code de sortie une fois le processus terminé.

L'objet n'est libéré que lorsque la dernière poignée est fermée. Contrairement aux conseils précédents donnés dans ce fil de discussion, il est très important que vous appeliez CloseHandle () ou que vous ayez une fuite.

Autres conseils

Vous pouvez attendre un descripteur de processus pour savoir quand il sera quitté.

WaitForSingleObject (hProcess, INFINITE);

Une fois que cela revient, vous savez que le processus est terminé et vous n'avez pas besoin de le fermer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top