Cómo interceptar simplemente CTRL, ALT, o MAYÚS en Basic

Exención de responsabilidades de contenido KB retirado

Este artículo se refiere a productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Resumen

Normalmente, para reventar MAYÚS, ALT y CTRL (CONTROL) en combinación con otras teclas, establecería los bits de estas claves en el primer byte (indicador de teclado) de los dos bytes Chr en la instrucción de la clave.


Sin embargo, para capturar las teclas CTRL, ALT y MAYÚS solo (no en combinación con otras teclas), el indicador de teclado en la instrucción KEY debe ser CHR$(0) para el teclado estándar o CHR $(&H80) de claves específicas para un teclado extendido.

Más información

La sintaxis de la instrucción KEY (donde n = 15 a 25 puede ser claves definidas por el usuario) es la siguiente:
CLAVE n, CHR$(keyboardflag) + CHR$(scancode)
En la siguiente tabla enumera los códigos de análisis para el CTRL, ALT y MAYÚS claves:
   Key           Scan Code
--- ---------
CTRL &H1D
ALT &H38
LEFT SHIFT &H2A
RIGHT SHIFT &H36

Nota: Para capturar la tecla CTRL derecha o ALT derecha (que se encuentra sólo en un teclado extendido 101), el indicador de teclado extendido (& H80) deben utilizarse en el byte de indicador de teclado.

Ejemplo de código

El ejemplo de código siguiente intercepta el CTRL, ALT y MAYÚS claves únicamente:
' NOTE:  This program requires NUM LOCK and CAPS LOCK to be off.KEY 15, CHR$(&H0) + CHR$(&H1D)     ' LEFT CTRL (on
ON KEY(15) GOSUB Ctrl ' Standard or Extended keyboard).
KEY(15) ON

KEY 16, CHR$(&H80) + CHR$(&H1D) ' RIGHT CTRL (on Extended keyboard).
ON KEY(16) GOSUB Ctrl
KEY(16) ON

KEY 17, CHR$(&H0) + CHR$(&H38) ' LEFT ALT (on
ON KEY(17) GOSUB alt ' Standard or Extended keyboard).
KEY(17) ON

KEY 18, CHR$(&H80) + CHR$(&H38) ' RIGHT ALT (on Extended keyboard).
ON KEY(18) GOSUB Alt
KEY(18) ON

KEY 19, CHR$(&H0) + CHR$(&H2A) ' LEFT SHIFT (on
ON KEY(19) GOSUB Shift ' Standard or Extended keyboard).
KEY(19) ON

KEY 20, CHR$(&H0) + CHR$(&H36) ' RIGHT SHIFT (on
ON KEY(20) GOSUB Shift ' Standard or Extended keyboard).
KEY(20) ON

WHILE INKEY$ <> CHR$(27): WEND ' Press ESC to end.
END

Ctrl: PRINT "CTRL"
RETURN

Alt: PRINT "ALT"
RETURN

Shift: PRINT "SHIFT"
RETURN

Propiedades

Id. de artículo: 59131 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios