Pregunta

Observo un identificador de aplicaciones cuando uso la función de shell para abrirlo. Luego uso ese controlador para cerrar la aplicación más tarde. Sin embargo, el usuario también puede cerrar esa otra aplicación él mismo. ¿Puede ese controlador ser reutilizado por Windows para que cuando lo use cierre un proceso diferente? Si es posible, ¿es probable?

¿Fue útil?

Solución

No, no tienes que preocuparte por eso. El identificador devuelto por, por ejemplo, OpenProcess, ShellExecuteEx () o CreateProcess mantiene vivo el objeto del proceso. Así es como es posible llamar a GetExitCodeProcess () para recuperar el código de salida después de que finalice el proceso.

El objeto no se libera hasta que se cierra el último identificador. Al contrario de los consejos anteriores dados en este hilo, es muy importante que llame a CloseHandle () o tendrá una fuga.

Otros consejos

Puede esperar en un identificador de proceso para determinar cuándo se cierra.

WaitForSingleObject (hProcess, INFINITE);

Una vez que esto regrese, sabrá que el proceso ha finalizado y no necesita cerrarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top