Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Bloquear Comandos de Windows

Estas en el tema de Bloquear Comandos de Windows en el foro de Visual Basic clásico en Foros del Web. Buenos dias, estoy usando el Visual Basic 2005, y me gustaria saber como hago para cuando corro mi apliccion Bloquear los comandos: ALT+F4 / Tecla ...
  #1 (permalink)  
Antiguo 03/11/2010, 07:04
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Pregunta Bloquear Comandos de Windows

Buenos dias, estoy usando el Visual Basic 2005, y me gustaria saber como hago para cuando corro mi apliccion Bloquear los comandos:

ALT+F4 / Tecla de Windows / ESC / ALT+TAB

Aca en las FAQ's encontre algo pero es para el Visual 6 y cuando trato de llevarlo al 2005 me da error...

Me gustaria que alguien me ayudara con esto... Gracias
  #2 (permalink)  
Antiguo 05/11/2010, 03:42
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Bloquear Comandos de Windows

Así deberias poder evitar que se cambie de tarea o se cierre el programa si no es cerrando el sistema:

Configura el form de tu programa con borderstyle=fixeddialog y usa estas líneas:

Código vb:
Ver original
  1. Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
  2.  
  3. 'Hacemos el form "Siempre visible"
  4. Private Sub Form_Load()
  5.   Const conHwndTopmost = -1
  6.   Const conHwndNoTopmost = -2
  7.   Const conSwpNoSize = &H1
  8.   Const conSwpNoMove = &H2
  9.   Const conSwpNoActivate = &H10
  10.   Const conSwpShowWindow = &H40
  11.   SetWindowPos Me.hWnd, conHwndTopmost, 0, 0, 0, 0, conSwpNoActivate Or conSwpNoMove Or conSwpNoSize
  12. End Sub


Código vb:
Ver original
  1. 'Lo maximizamos
  2. Private Sub Form_Resize()
  3.   Me.WindowState=vbMaximized
  4. End Sub

Código vb:
Ver original
  1. ' Evitamos que se pueda cerrar
  2. Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  3.   If UnloadMode = vbFormControlMenu Then Cancel = 1
  4. End Sub

Y despues añades un timer

Código vb:
Ver original
  1. Private Sub Timer1_Timer()
  2.   ' enfocamos el programa cada x milisegundos
  3.  Me.SetFocus
  4. End Sub

Saludos

PD: Ya lo tuve que reescribir porque no era del todo correcto el código que puse antes, y me vuelvo a encontrar igual. El timer con el setfocus puede impedir usar los botones del form, y si lo pongo en el evento LostFocus tampoco parece hacer efecto. Hay que buscar otro modo de recuperar el foco si se pierde, o calcular un interval que permita trabajar con el programa.
De todas formas si pones un interval no muy bajo (>=250) parece que permite trabajar.
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 05/11/2010 a las 05:05
  #3 (permalink)  
Antiguo 05/11/2010, 13:40
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: Bloquear Comandos de Windows

Probare tu Codigo haber quie tal....

Etiquetas: bloquear, comandos, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:30.