Visual Basic - Capturar las teclas

Life is soft - evento anual de software empresarial
 
Vista:

Capturar las teclas

Publicado por Manuel Rojas (1 intervención) el 21/01/2005 03:49:47
Hola amigos quisiera que me puedan ayudar, bueno lo que quiero hacer es un programa que me carge al inicio de windows cuando prende la PC,
pero lo que no puedo es capturar el teclado, por ejemplo:
Al hacerAlt+F6 cuando estoy en cualquier ventana que me salga mi formulario, pero no puedo capturar los teclados ese es mi problema,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Capturar las teclas

Publicado por Benjo (679 intervenciones) el 21/01/2005 12:02:41
Los Hook o ganchos, se implementan para atrapar todos los eventos del sistema, pero en el caso de los HotKeys sólo hace falta registrarlos.
Vas a encontrar infinidad de ejemplos en donde se realiza un Do Loop infinito tratando de detectar la pulsación de las teclas y esto consume mucho procesamiento de tu CPU.
Private Sub Form_Load()
Me.WindowState = vbMinimized
erg& = SendMessage(Me.hwnd, WM_SETHOTKEY, HK_ALTZ, 0)
'Chequea si es correcta la asignación
If erg& <> 1 Then
MsgBox "no se ha crado el Hotkey", vbOKOnly, _
"Error"
End If
' Acá se pone un Hook, con una acción determinada.
erg& = DefWindowProc(Me.hwnd, WM_SHOWWINDOW, 0, 0)
End Sub
'en un Modulo Bas
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Long) As Long

Declare Function DefWindowProc Lib "user32" _
Alias "DefWindowProcA" (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long

Public Const WM_SETHOTKEY = &H32
Public Const WM_SHOWWINDOW = &H18
Public Const HK_SHIFTA = &H141 'Shift + A
Public Const HK_SHIFTB = &H142 'Shift * B
Public Const HK_CONTROLA = &H241 'Control + A
Public Const HK_ALTZ = &H45A

'Existen otros procedimientos mucho más complejos y funcionales, pero el código es mucho más complicado que esto, si los querés te puedo enviar el código.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar