FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Evitar solamente Alt+f4 en mi aplicacion
Que tal amigos gracias por la ayuda que brindan a través de los foros...mi pregunta es esta necesito evitar que cuando la ventana de mi aplicacion este activa no se pueda cerrar con Alt+f4 ya busque en los foros sobre esto y sale como hacerlo el problema es que me dicen que haga lo sig:
en el evento de la form OnCloseQuery asignar a la variable CanClose:=false ya probe y funciona pero no me sirve porque mi aplicacion necesito que se cierre cuando se cierre la sesion de Win, y con ese codigo no me deja ni cerrar la sesion de windows porque claro hay un programa que le esta diciendo a Win que no se puede cerrar....ahora yo lo que necesito es que solamente cuando mi aplicacion este activa pues que se bloquee el Alt+f4 para que el usuario no pueda cerrarla y solamente se cierre cuando Win finalice Sesion. Gracias de antemano...un saludo Gelmin Martinez (Nicaragua)
__________________
Powered by Gel |
#2
|
|||
|
|||
Mírate el la web de Román o en mi web la unit Hooks. Seguramente te servirá
|
#3
|
||||
|
||||
Esta muy bueno lo de la unit Hooks pero...!
Gracias amigos ya probe lo de la units Hooks esta muy bueno me parece bastante facil y util pero mi aplicacion estara activa durante todo la sesion del usuario por lo tanto con esa unit bloqueo el alt+f4 y no me sirve para niguna otra aplicacion mientras la mia este abierta como puedo hacer para que el gancho se de en el momento en que se active la ventana principal de mi aplicacion y solamente en ese momento que el alt+f4 este bloqueado una ves que mi app pasa a segundo plano o que se desactive la ventana principal que se vuelva a habilitar el alt+f4 para poder utilizarlo con otras aplicaciones... cualquier comentario es bienvenido un saludo Gelmin Martinez(Nicaragua)
__________________
Powered by Gel |
#4
|
|||
|
|||
quizas lo que conteste no tenga nada que ver con lo que necesitas pero probastes con el evento OnActivate de los forms?
|
#5
|
||||
|
||||
ya probe con el OnActive del form
Si men, se me olvido decir que ya habia probado con el OnActive del form y tampoco me funciona...!
__________________
Powered by Gel |
#6
|
||||
|
||||
Cita:
Por lo que a mi juicio es un error de diseño, Delphi no distingue si una ventana se cierra por métodos cómo Alt-F4, botón de cruz, método Close, etc. o porque se termina la sesión de Windows. Todo porque al recibir el mensaje WM_QUERYENDSESSION se limita a llamar al evento CloseQuery sin pasarle a éste algún parámetro que indique la forma en que se intenta cerrar la sesión. La solución es redefinir el manejador del mensaje WM_QUERYENDSESSION y ahí fijar alguna bandera que indique por qué se está cerrando la sesión: Código:
EndSession := true; Código:
CanClose := EndSession |
#7
|
||||
|
||||
Prueba esto
No estoy seguro que sea esto lo que quieres pero prueba esto en el evento on close
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if Application.Active then Action:= caNone else Action := caFree; end; yo creo que pincha |
#8
|
||||
|
||||
A quien tenga la misma situación
Saludos delphiadictos...
Comenzaré mi respuesta diciendo que la respuesta esta un poco atrasada pero nunca es tarde para que alguien mas pueda resolver este detalle, yo lo resolví de la siguiente manera en el evento OnKeyDown del formulario, con la propiedad KeyPreview del form en True
Asi evito que el form sea cerrado por la combinación ALT + F4 y cierre tanto por la X, si la ventana la tiene y por la tecla Escape |
|
|
|