• Viernes 8 de Noviembre de 2024, 20:54

Autor Tema:  Reconocer Cuando Se Presionen Teclas  (Leído 1976 veces)

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Reconocer Cuando Se Presionen Teclas
« en: Sábado 19 de Mayo de 2007, 00:01 »
0
Como puedo hacer yo para que mi aplicacion sepa cuando yo presione la combinacion de teclas por darles un ejemplo CTRL + ALT + L ? pero por decirles algo mi aplicacion va a  estar en la barra que aparece a la par del reloj ... :P  

Gracias por la ascesoria.....  :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Reconocer Cuando Se Presionen Teclas
« Respuesta #1 en: Sábado 19 de Mayo de 2007, 00:17 »
0
Guiate con el api GetKeyState.
Código: Text
  1. 'Ejemplo del Api-Guide
  2. 'In a module
  3. Public Const WH_KEYBOARD = 2
  4. Public Const VK_SHIFT = &H10
  5. Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
  6. Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
  7. Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
  8. Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
  9. Public hHook As Long
  10. Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  11.     'if idHook is less than zero, no further processing is required
  12.     If idHook < 0 Then
  13.         'call the next hook
  14.         KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
  15.     Else
  16.         'check if SHIFT-S is pressed
  17.         If (GetKeyState(VK_SHIFT) And &HF0000000) And wParam = Asc("S") Then
  18.             'show the result
  19.             Form1.Print "Shift-S pressed ..."
  20.         End If
  21.         'call the next hook
  22.         KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
  23.     End If
  24. End Function
  25.  
  26. 'In a form, called Form1
  27. Private Sub Form_Load()
  28.     'KPD-Team 2000
  29.     'URL: http://www.allapi.net/
  30.     'E-Mail: KPDTeam@Allapi.net
  31.     'set a keyboard hook
  32.     hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)
  33. End Sub
  34. Private Sub Form_Unload(Cancel As Integer)
  35.     'remove the windows-hook
  36.     UnhookWindowsHookEx hHook
  37. End Sub
  38.  
  39.  
El pasado son solo recuerdos, el futuro son solo sueños

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Reconocer Cuando Se Presionen Teclas
« Respuesta #2 en: Sábado 19 de Mayo de 2007, 00:23 »
0
Thank's ....... me da un errorsito aca

Hook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)

Que podra ser ?
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Reconocer Cuando Se Presionen Teclas
« Respuesta #3 en: Sábado 19 de Mayo de 2007, 00:35 »
0
El primer código va en un módulo y el segundo en un Formulario:

Código: Text
  1. 'In a form, called Form1
  2. Private Sub Form_Load()
  3.    'KPD-Team 2000
  4.    'URL: http://www.allapi.net/
  5.    'E-Mail: KPDTeam@Allapi.net
  6.    'set a keyboard hook
  7.    hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)
  8. End Sub
  9. Private Sub Form_Unload(Cancel As Integer)
  10.    'remove the windows-hook
  11.    UnhookWindowsHookEx hHook
  12. End Sub
  13.  
El pasado son solo recuerdos, el futuro son solo sueños

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Reconocer Cuando Se Presionen Teclas
« Respuesta #4 en: Sábado 19 de Mayo de 2007, 00:36 »
0
Si asi lo puse pero me da error en ese parametro ?  <_<
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



AnioN

  • Miembro MUY activo
  • ***
  • Mensajes: 339
    • Ver Perfil
Re: Reconocer Cuando Se Presionen Teclas
« Respuesta #5 en: Sábado 19 de Mayo de 2007, 01:15 »
0
que error te tira especificamente?

ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Reconocer Cuando Se Presionen Teclas
« Respuesta #6 en: Lunes 21 de Mayo de 2007, 17:22 »
0
Código: Text
  1. Compile error
  2. Invalid use of AddressOf Operator
  3.  

Gracias por la ayuda  :ph34r:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Reconocer Cuando Se Presionen Teclas
« Respuesta #7 en: Martes 22 de Mayo de 2007, 17:45 »
0
Oye RadicalEd..... a ti se te funciona el codigo que me enviaste ?  :unsure:  poque ya he intentado modificarlo y hacerle unas cositas pero no me da ....  :P  ....

Gracias
 :smartass:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



ElNapster

  • Moderador
  • ******
  • Mensajes: 727
    • Ver Perfil
Re: Reconocer Cuando Se Presionen Teclas
« Respuesta #8 en: Martes 22 de Mayo de 2007, 18:07 »
0
LISTO !!!!!!  ;)  , asunto resuelto ... Gracias brother  B)

 :comp:
"Somos lo que imaginamos ser"
-- --------------------------------------------------------------
-ElNapster
-Designer / Developer Software
-GuaTemALa



RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Reconocer Cuando Se Presionen Teclas
« Respuesta #9 en: Martes 22 de Mayo de 2007, 19:17 »
0
Cita de: "ElNapster"
Oye RadicalEd..... a ti se te funciona el codigo que me enviaste ?  :unsure:  poque ya he intentado modificarlo y hacerle unas cositas pero no me da ....  :P  ....

Gracias
 :smartass:
Sip a mi si me funciona.
El pasado son solo recuerdos, el futuro son solo sueños