Que tal compañeros del foro, estuve paseando por el y me parece un excelente foro ademas de que es muy útil y pues vengo con mi post para ver si puede alguien echarme una mano u orientarme.
Para fines meramente educativos.
¿Por qué? / ¿Para qué? (Si no quieren leer esto vayan abajo para saber que intento hacer)
Me encuentro haciendo un proyecto escolar, el cual es para el control de un laboratorio con algunos equipos de computo de la escuela, el caso es que tengo que controlar el acceso a estos equipos, algo así como si fuese un Cafe Internet, solo que solo es para permitir el uso del equipo después de que un profesor se registre y libere los equipos, nada de tiempos y esas cosas.
Lo que tengo trabaja así: En la pc del profesor, se ejecuta una pagina web en JSP en la red local o intranet la cual le muestra un campo para su clave de profesor para que se registre y después de esto se puedan usar los demás equipos. En las demás PC's tengo una aplicación java con el uso de Sockets que se ejecuta cuando se inicia Windows(en este caso) y abre un JFrame en pantalla completa sin barra de titulo ni botones de cerrar, minimizar y maximizar.
Ya tengo hecho parte del proyecto, en la pc del profesor tengo ya en el navegador ejecutándose la aplicación web en JSP con una pagina que le permite registrar su clave de profesor a los docentes, y después de que se registra el profesor en las demas PC's donde se ejecuta la aplicación Java Sockets se debe cerrar el JFrame inmediatamente después del registro del profesor, esto lo hago enviando un mensaje desde la aplicación web a la aplicacion Java en las otras PC's por medio de sockets y funciona bien.
Ayuda
Ahora la ayuda que les pido, es sobre ¿como impedir que no cierren o minimicen el JFrame en los demas PC's y que no puedan salir de la aplicación Java (del JFrame) hasta que no se cierre despues del registro del profesor?
Por ahora cuando se ejecuta el JFrame al inicio de Windows no pueden cerrarlo con Alt + F4 ni con los botones ya que se los quite, pero si pueden usar Alt + Tab y brincar a otra aplicación, tambien pueden evadir el JFrame mimizandolo con las teclas Inicio + D o cerrar la aplicación completa con Ctrl + Alt + Supr
¿Saben como puedo bloquear estas teclas de funciones para que no las usen para salir de la aplicación? o bien ¿como bloquear el teclado completo y que al cerrarse la aplicación/JFrame se active?
¿Alguna forma o método para que la aplicación este siempre al frente y no puede cerrarse o minimizarse?
He intentado impedir el uso de la tecla Inicio con el evento KeyPressed() y KeyTyped() de esta forma:
Código:
if(evt.getKeyCode() == KeyEvent.VK_WINDOWS){//o también con VK_HOME
evt.consume();
System.out.println("Presiono Inicio");
}
//o así
if(keyCode==524){
System.out.println("Press Inicio");
//JOptionPane.showMessageDialog(null, "Debe esperar a que el profesor Libere los Equipos");
//pantalla.setFullScreenWindow(this);
evt.consume();
}
pero al presionar la tecla inicio abre el menú de inicio o Alt + Tab y puede abrir otra aplicación o bien usar el equipo, y esto es precisamente lo que busco hacer, impedir que salga de la aplicación sino hasta que el profesor se registre.
Para impedir que cierren el JFrame utilice DO_NOTHING_ON_CLOSE pero no se que usar para Alt + Tab y para Inicio + D , he escuchado sobre la clase Robot pero hasta no e encontrado algo para impedir el uso de estas funciones de teclas...
No les pido que lo hagan por mi sino que me apoyen u orienten, de como solucionarlo de antemano gracias por su ayuda, saludos.