¿Cómo se puede detectar a partir de un Swing de la aplicación que el PC está apagado?

StackOverflow https://stackoverflow.com/questions/71842

  •  09-06-2019
  •  | 
  •  

Pregunta

Así se comportaron los programas de windows necesitan para permitir a los usuarios guardar su trabajo cuando tienen necesidad de apagar el PC.

¿Cómo puedo hacer que mi aplicación de detectar el evento de apagado?Cualquier solución debe permitir al usuario cancelar el apagado si el usuario selecciona, diga "Cancelar".

El Swing normal de la ventana de cierre de gancho no funciona, ni la adición de un cierre de gancho.

En las pruebas, los métodos de WindowListener (windowClosing,windowClosed, etc) no se llama.

La respuesta que me han aceptado requiere el uso de la plataforma de código específico (JNI para registrarse para WM_QUERYENDSESSION ).No es esto un error en el Columpio?

Ver http://forums.sun.com/thread.jspa?threadID=481807&messageID=2246870

¿Fue útil?

Solución

Escribir algunos JNI código WM_QUERYENDSESSION mensaje.Usted puede obtener detalles de este a partir de la documentación de MSDN o buscando en google se.

Si usted no desea escribir demasiado código C++ para hacer esto puedo recomendar el JNA biblioteca haga clic aquí.Lo que nos da una agradable Java abstracciones para C código.

Otros consejos

La anterior parece ser la mejor respuesta.

No puedo encontrar ninguna buena información sobre la detección de la ventana de apagado de eventos.Supongo que el mejor método posible sería para detectar a tiempo su solicitud está tratando de cerrar, utilizando una ventana de evento de cierre o similar, entonces hacer la pregunta.

http://www.javalobby.org/java/forums/t17933

Look para el manejo de señales en java.cuando Windows lo cierra enviará una señal a la aplicación de preguntar a terminar más probable es que un sigterm

ver aquí para más información sobre esto (yo no soy el propietario de la web)

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