Quiero terminar una serie de procesos, pero quiero dar a cada proceso la oportunidad de guardar sus datos, preguntarle al usuario sobre guardar un archivo e incluso ignorar la solicitud de cierre.Cómo finalizar correctamente un proceso?
Así que TerminateProcess
está fuera de la cuestión, ya que mata el proceso al instante. Otra forma sería usar SendMessage
/PostMessage
para enviar un WM_CLOSE
a la ventana principal, desafortunadamente no sé nada sobre las ventanas de los procesos, solo tengo la identificación del proceso, por lo que FindWindow
tampoco ayuda. ¿Hay alguna otra manera de encontrar las ventanas principales de un proceso?
En otras palabras: ¿Hay alguna manera de poner fin a cualquier proceso con gracia al igual que lo hace el administrador de tareas cuando se hace clic en "Finalizar tarea "? (y no "End Process")
que asumen que "tareas" son ventanas de nivel superior (visibles). Por lo tanto, el 'WM_CLOSE' se enviará (probablemente) en la tarea de finalización. –
Si no es un desarrollador de software, solo un usuario de Windows, consulte [la pregunta relacionada con el Superusuario sobre cómo solicitar con gracia que finalice una aplicación en ejecución] (http://superuser.com/questions/959364/on-windows- cómo-puedo-yo-agradecer-pedir-un-proceso-terminar). – unforgettableid
Tenga en cuenta que, a partir de Windows 8.1, el botón "Finalizar tarea" del Administrador de tareas ahora termina a la fuerza la aplicación elegida y hace que pierda cualquier trabajo no guardado.Es posible que desee editar su pregunta para reflejar esto. – unforgettableid