31 de enero de 2009

Obtener el estado de la tecla SCROLL LOCK

Siempre quise saber para que servía esta tecla. El único programa conocido que le daba algún uso era Excel, después ninguno.

Entonces se me ocurrió que para activar el depurador de VFP solamente cuando quería, sin ninguna condición podría usar esta tecla. El programa que usé siempre para llamar al depurador era:

IF _VFP.STARTMODE = 0
  DEBUG
  SUPEND
ENDIF

Si me olvidaba de quitarlo durante la generación del EXE , no habría problema, porque nunca se ejecutaría (STARTMODE = 0 es inicio de la ventana de comandos).

Entonces quedaría:

IF _VFP.STARTMODE = 0 AND ScrollLock()
  DEBUG
  SUPEND
ENDIF

Así detengo mi programa cuando quiero, solamente presionando una tecla. Si quiero que continue presiono la tecla SCROLL LOCK y le doy continuar al depurador.

FUNCTION ScrollLock
  LOCAL lnEstado
  * La función de API GetKeyState también sirve para otras como NUMLOCK : 0x90
  DECLARE INTEGER GetKeyState IN user32 LONG lnTecla
  lnEstado = GetKeyState(0x91)
  * Limpia la declaración si es VFP 8 o superior
  IF VAL(_VFP.VERSION) >= 8.00
    CLEAR DLLS GetKeyState
  ENDIF
  RETURN (lnEstado = 1)
ENDFUNC

Ricardo Geremia

No hay comentarios. :

Publicar un comentario