Programación General > Visual Basic 6.0 e inferiores
Como Detectar Si Se Pulsa Una Tecla En El Teclado
(1/1)
MindEye:
- vereis, es que desde un control combo, o imagen, ect... es facil y si puedo controlar los eventos del teclado, pero es que cuando el foco lo tiene el formulario como quien dice, no hay manera, pero bueno, el caso es que necesito configurar el F3, y el F5 para una funcion expecifica, pero no lo consiguo.
- Como puedo hacerlo.
- Bueno, gracias, y hasta pronto
ROBER.29:
Hola,
El formulario tambien tiene el evento KeyPress. Por lo tanto:
--- Código: Text --- Private Sub Form_KeyPress(KeyAscii As Integer) Msgbox KeyAsciiEnd Sub
Así sabrás el código Ascii de la tecla pulsada.
Saludos.
Brroz:
Hola.
Ten en cuenta que si en alguno de los controles contenidos en el formulario, tienes código para el mismo evento que en el formulario (me explico: en el mismo form tienes definido el evento KeyPress, por ejemplo, para el form y para otro control), siempre se desencadenará el evento del control antes que el del formulario a no ser que establezcas la propiedad del formulario KeyPreview=True.
Abur.
kkklira:
:hola: Hola:
Pues bien hace poco hice este código a ver que les parece.
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Label1 = KeyCode
Label2 = "Se Conoce Como: " & TeclaPresionada(KeyCode)
End Sub
Private Sub Form_Load()
Me.KeyPreview = True
End Sub
Private Function TeclaPresionada(Tecla As Integer) As String
Select Case Tecla
Case 8: TeclaPresionada = "Retroceso"
Case 9: TeclaPresionada = "Tab"
Case 13: TeclaPresionada = "Entrada"
Case 16: TeclaPresionada = "Shift"
Case 17: TeclaPresionada = "Control"
Case 18: TeclaPresionada = "Alt"
Case 19: TeclaPresionada = "Pausa"
Case 20: TeclaPresionada = "Mayus"
Case 23: TeclaPresionada = "Entrada"
Case 27: TeclaPresionada = "Escape"
Case 32: TeclaPresionada = "Barra Espaciadora"
Case 33: TeclaPresionada = "Re Pag"
Case 34: TeclaPresionada = "Av PAg"
Case 35: TeclaPresionada = "Fin"
Case 36: TeclaPresionada = "Shift"
Case 37: TeclaPresionada = "Flecha Izq"
Case 38: TeclaPresionada = "Flecha Arriba"
Case 39: TeclaPresionada = "Flecha Der"
Case 40: TeclaPresionada = "Flecha Abajo"
Case 45: TeclaPresionada = "Insert"
Case 46: TeclaPresionada = "Supr"
Case 48 To 57: TeclaPresionada = AbNumero(Tecla - 47)
Case 65 To 90: TeclaPresionada = ABCDario(Tecla - 64, AbMayus)
Case 91, 92: TeclaPresionada = "Windows"
Case 96 To 105: TeclaPresionada = AbNumero(Tecla - 95) & " Tec Numerico"
Case 106: TeclaPresionada = "*"
Case 107: TeclaPresionada = "+"
Case 109: TeclaPresionada = "-"
Case 110: TeclaPresionada = "."
Case 111: TeclaPresionada = "÷"
Case 112 To 123: TeclaPresionada = "F" & Tecla - 111
Case 144: TeclaPresionada = "Bloq Num"
Case 144: TeclaPresionada = "Bloq Despl"
Case 186 To 192: TeclaPresionada = AbEspecial(Tecla - 185)
Case 219: TeclaPresionada = "?"
Case 220: TeclaPresionada = "°"
Case 221: TeclaPresionada = "¡"
Case 222: TeclaPresionada = "["
Case Else: TeclaPresionada = "Desconocido"
End Select
End Function
' Y en un módulo peguen lo siguiente
Public Enum AbMinMay
AbMinus
AbMayus
End Enum
Public Function ABCDario(AbLetra As Integer, AbMinsMays As AbMinMay) As String
Dim CadABCMay, CadABCMin As String
CadABCMay = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
CadABCMin = LCase$(CadABCMay)
If AbLetra < 1 Then
MsgBox "AbLetra < 1"
ElseIf AbLetra > 26 Then
MsgBox "AbLetra < 26"
Else
Select Case AbMinsMays
Case AbMayus: ABCDario = Mid(CadABCMay, AbLetra, 1)
Case AbMinus: ABCDario = Mid(CadABCMin, AbLetra, 1)
End Select
End If
End Function
Public Function AbNumero(AbNum As Integer) As String
Dim CadNum As String
CadNum = "0123456789"
If AbNum < 1 Or AbNum > 10 Then
MsgBox "La cadena de AbNum debe ser entre 1 y 10"
Else
AbNumero = Mid(CadNum, AbNum, 1)
End If
End Function
Public Function AbEspecial(AbNum As Integer) As String
Dim CadNum As String
CadNum = "´+;-:}Ñ"
If AbNum < 1 Or AbNum > 7 Then
MsgBox "La cadena de AbNum debe ser entre 1 y 7"
Else
AbEspecial = Mid(CadNum, AbNum, 1)
End If
End Function
' Saludos :smartass:
Navegación
Ir a la versión completa