elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Detectar atajos de teclado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Detectar atajos de teclado  (Leído 9,366 veces)
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Detectar atajos de teclado
« Respuesta #10 en: 1 Febrero 2010, 02:05 am »

cada registrada de combinaciones tiene un ID, es el segundo parametro, vos ahi estas registrando todas con el mismo ID = 1 , y cuando repetis los ID, solo te toma la ultima ...debes hacer algo como:

If RegisterHotKey(hWnd, 1, MOD_CONTROL Or MOD_ALT, VK_1) = 0 Then
...codigo...
If RegisterHotKey(hWnd, 2, MOD_CONTROL Or MOD_ALT, VK_1) = 0 Then
codigo...
If RegisterHotKey(hWnd, 3, MOD_CONTROL Or MOD_ALT, VK_1) = 0 Then
codigo....

y en el NewWindowProc el parametro wParam, te va a llegar con el ID de la combinacion que apretaste, y bueno ahi haces un if o un select case y listo...

PD: para desregistrar tambien debes hacerlo con el ID...

saludos.


En línea

50l3r


Desconectado Desconectado

Mensajes: 784


Solo se que se algo pero no me acuerdo


Ver Perfil WWW
Re: Detectar atajos de teclado
« Respuesta #11 en: 1 Febrero 2010, 08:56 am »

ok gracias sea123neo, ahora si lo entendi


En línea

50l3r


Desconectado Desconectado

Mensajes: 784


Solo se que se algo pero no me acuerdo


Ver Perfil WWW
Re: Detectar atajos de teclado
« Respuesta #12 en: 1 Febrero 2010, 16:49 pm »

esto en el form load:

Código
  1.    If RegisterHotKey(hWnd, 1, MOD_CONTROL Or MOD_ALT, VK_1) = 0 Then
  2.    MsgBox " Hubo un error ", vbCritical
  3.    Exit Sub
  4.    End If
  5.    If RegisterHotKey(hWnd, 2, MOD_CONTROL Or MOD_ALT, VK_2) = 0 Then
  6.    MsgBox " Hubo un error ", vbCritical
  7.    Exit Sub
  8.    End If
  9.    If RegisterHotKey(hWnd, 3, MOD_CONTROL Or MOD_ALT, VK_3) = 0 Then
  10.    MsgBox " Hubo un error ", vbCritical
  11.    Exit Sub
  12.    End If
  13.    If RegisterHotKey(hWnd, 4, MOD_CONTROL Or MOD_ALT, VK_4) = 0 Then
  14.    MsgBox " Hubo un error ", vbCritical
  15.    Exit Sub
  16.    End If
  17.    If RegisterHotKey(hWnd, 5, MOD_CONTROL Or MOD_ALT, VK_5) = 0 Then
  18.    MsgBox " Hubo un error ", vbCritical
  19.    Exit Sub
  20.    End If
  21.    If RegisterHotKey(hWnd, 6, MOD_CONTROL Or MOD_ALT, VK_6) = 0 Then
  22.    MsgBox " Hubo un error ", vbCritical
  23.    Exit Sub
  24.    End If
  25.    If RegisterHotKey(hWnd, 7, MOD_CONTROL Or MOD_ALT, VK_7) = 0 Then
  26.    MsgBox " Hubo un error ", vbCritical
  27.    Exit Sub
  28.    End If
  29.    If RegisterHotKey(hWnd, 8, MOD_CONTROL Or MOD_ALT, VK_8) = 0 Then
  30.    MsgBox " Hubo un error ", vbCritical
  31.    Exit Sub
  32.    End If
  33.  
  34.    WinProc = SetWindowLong(hWnd, GWL_WNDPROC, AddressOf NewWindowProc)

esto en el modulo:
Código
  1. Public Function NewWindowProc( _
  2.                ByVal hWnd As Long, _
  3.                ByVal Msg As Long, _
  4.                ByVal wParam As Long, _
  5.                ByVal lParam As Long) As Long
  6.  
  7.    If Msg = &H82 Then
  8.  
  9.       Call SetWindowLong(hWnd, GWL_WNDPROC, WinProc)
  10.       Call UnregisterHotKey(hWnd, 1)
  11.  
  12.    End If
  13.  
  14. if wparam = 1 then msgbox "apretaste 1"
  15. if wparam = 2 then msgbox "apretaste 2"
  16. if wparam = 3 then msgbox "apretaste 3"
  17. if wparam = 4 then msgbox "apretaste 4"
  18. if wparam = 5 then msgbox "apretaste 5"
  19. if wparam = 6 then msgbox "apretaste 6"
  20. if wparam = 7 then msgbox "apretaste 7"
  21. if wparam = 8 then msgbox "apretaste 8"
  22.  
  23.  
  24.    NewWindowProc = CallWindowProc(WinProc, hWnd, Msg, wParam, lParam)
  25.  
  26. End Function
  27.  
  28.  
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Detectar atajos de teclado
« Respuesta #13 en: 1 Febrero 2010, 17:23 pm »

Utiliza un Select Case envez de tantos Ifs :rolleyes: :rolleyes:
En línea

50l3r


Desconectado Desconectado

Mensajes: 784


Solo se que se algo pero no me acuerdo


Ver Perfil WWW
Re: Detectar atajos de teclado
« Respuesta #14 en: 1 Febrero 2010, 18:16 pm »

solo lo puse para ver si funcionaba, no funciona

al iniciar el proyecto se crea un bucle que dice" apretaste1"
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Detectar atajos de teclado
« Respuesta #15 en: 1 Febrero 2010, 23:22 pm »

es porque no pussite flitro. o sea, todos esos IF tenes que meterlos dentro de un if que valide si Msg es WM_HOTKEY

Código
  1. Public Function NewWindowProc( _
  2.                ByVal hWnd As Long, _
  3.                ByVal Msg As Long, _
  4.                ByVal wParam As Long, _
  5.                ByVal lParam As Long) As Long
  6.  
  7.    If Msg = &H82 Then
  8.  
  9.       Call SetWindowLong(hWnd, GWL_WNDPROC, WinProc)
  10.       Call UnregisterHotKey(hWnd, 1)
  11.  
  12.    End If
  13. if Msg = WM_HOTKEY Then ' Creo que es &H83 si mi memoria no me falla :P
  14. if wparam = 1 then msgbox "apretaste 1"
  15. if wparam = 2 then msgbox "apretaste 2"
  16. if wparam = 3 then msgbox "apretaste 3"
  17. if wparam = 4 then msgbox "apretaste 4"
  18. if wparam = 5 then msgbox "apretaste 5"
  19. if wparam = 6 then msgbox "apretaste 6"
  20. if wparam = 7 then msgbox "apretaste 7"
  21. if wparam = 8 then msgbox "apretaste 8"
  22. end If
  23.  
  24.    NewWindowProc = CallWindowProc(WinProc, hWnd, Msg, wParam, lParam)
  25.  
  26. End Function
  27.  
  28.  
  29. PD: La proxima sere un poco mas claro para que me entiendas mejor :P (x la explicacion de antes :xD)
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Atajos teclado, Trucos y Versiones de Android
Android
el-brujo 5 26,585 Último mensaje 24 Abril 2014, 12:05 pm
por JazMalta
Conoce los atajos de teclado de Windows 8
Noticias
wolfbcn 0 2,124 Último mensaje 13 Marzo 2012, 19:00 pm
por wolfbcn
Toastify, crea atajos de teclado para Spotify en Windows
Noticias
wolfbcn 0 1,752 Último mensaje 10 Febrero 2013, 21:45 pm
por wolfbcn
Si tienes un Mac, memoriza estos 13 atajos del teclado
Noticias
wolfbcn 0 1,275 Último mensaje 22 Abril 2014, 18:54 pm
por wolfbcn
19 sitios web para aprender los atajos de teclado de tus sistemas y programas...
Noticias
wolfbcn 0 885 Último mensaje 31 Marzo 2016, 15:00 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines