Desactivar la tecla system

Hice una aplicación a la que pude desactivarle la barra de win y que se desaparezca del ctrl+alt+supr, pero también necesito desactivar temporalmente y que mientras la barra este invisible, no se pueda activar el inicio desde el teclado.
Encontré una aplicación para desactivar el "ESC", ¿pero existe alguna rutina para desactivar la tecla del logo de win?
Tengo el visual fox 7.0 y sistema win xp
Se los agradeceré muchísimo
Hasta pronto
Pilar Rocío

1 Respuesta

Respuesta
1
En ocasiones no queremos que el usuario tenga acceso al botón inicio de Windows; lo que hacemos entonces es cerrarlo.
Declare Long FindWindow In "user32" ;
    String lpClassName, String lpWindowName
Declare Long SendMessage In "user32" ;
   Long HWnd,Long wMsg, Long wParam, Long Lparam
Declare Long FindWindowEx In "user32" ;
   Long hWnd1, Long hWnd2, String lpsz1, String lpsz2
#Define WM_CLOSE 0x10
SendMessage(FindWindowEx(FindWindow("Shell_TrayWnd",""), 0x0, "Button", .Null.), WM_CLOSE, 0, 0)
El asterisco ( * ) permite inhabilitar algunas cositas de VFP... en este caso, no funcionaran las combinaciones de teclas para copiar (CTRL+C), Pegar (CTRL+V).
ON KEY LABEL CTRL+V *
ON KEY LABEL CTRL+C *
Cuando el usuario presione dichas combinaciones de teclas no harán nada. Y de igual forma puedes hacer con todas las teclas.
Quieres que tu programa nunca mande un error... mejor dicho ¿quieres esconder tus errores? ... ¿Interesante no?
On Error *
Y si deseas evitar que el usuario salga del programa ..
On Shutdown *
Prueba con otras opciones y comprobaras lo útil que es el asterisco ( * )
Encontré entre mis cosas esta función espero te sirva
*
** FUNCTION DesactivarTeclasWindows(tlEstado)
** Funcion para Desactivar las Teclas CRTL + ALT + SUPR de Windows
*
** Parametros
**    tlEstado   =  Estado de las Teclas  (VALOR LOGICO)
**          .T.  = Desactiva las Teclas
**          .F.  = Activa las Teclas
*
*
**************************************************************************
*
FUNCTION DesactivarTeclasWindows(tlEstado)
 DECLARE INTEGER SystemParametersInfo IN USER32.DLL ;
 LONG uAction, ;
 LONG uParam, ;
 STRING lpvParam, ;
 LONG fuWinIni
 uAction = 97
 lpvParam = '0'
 fuWinIni = 0
 If tlEstado = .T.
  *--- deshabilita las teclas
  uParam = 1
  tnResultado = SystemParametersInfo(@uAction,@uParam,lpvParam,@fuWinIni)
   Else
  *--- habilita las teclas
  uParam = 0
  tnResultado = SystemParametersInfo(@uAction,@uParam,lpvParam,@fuWinIni)
 EndIf
RETURN tnResultado
ENDFUNC
*
** Fin DesactivarTeclasWindows()
Muchísimas gracias, por tu esmero en contestar mi pregunta, lo voy a programar en mi aplicación a ver como me va y luego te cuento.
No quiero aprovecharme tanto, ¿pero por casualidad sabes como desactivo la posibilidad de cambiar la hora del reloj?... mi aplicación depende de la hora exacta y necesito que nadie me la modifique una vez que yo la configuro... ademas tengo un freezer, pero no quiero que cambien la hora en el tiempo en que la maquina esta activa,
Reitero las gracias un abrazo
Pilar Rocío

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas