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 8,049 veces)
50l3r


Desconectado Desconectado

Mensajes: 784


Solo se que se algo pero no me acuerdo


Ver Perfil WWW
Detectar atajos de teclado
« en: 26 Enero 2010, 23:53 pm »

Muy buneas, quisiera saber como detectar atajos de teclado, es decir como saber en mi programa si se ha pulsado alt + f4 por ejemplo

alguien sabe con que funcion se puede hacer? intente con la api getasynckeystate pero me lo detecta unicamente cuando las pulso a la vez, no cuando dejo pulsada,una y despues otra, nose si me entendi bien

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 #1 en: 27 Enero 2010, 00:19 am »

weno, me autorespondo

http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/10.htm

gracias ^^ xD


En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Detectar atajos de teclado
« Respuesta #2 en: 27 Enero 2010, 22:53 pm »

es mejor con la api RegisterHotKey, ya que eso solamente funciona si tu aplicación esta activa.
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 #3 en: 27 Enero 2010, 23:04 pm »

pues lo iva a preguntar ahora mismo, me di cuenta cuando lo acabe que solo recibe la accion si tiene el foco
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 #4 en: 31 Enero 2010, 03:58 am »

tengo una duda en esto ultimo:

RegisterHotKey(hWnd, 1, MOD_CONTROL, VK_V)

ahi apretando control + v genera el evento

pero si yo quisiera pasarle 3 teclas para un atajo de teclado, por ejemplo control + v + 1

como hago eso?

saludos
En línea

seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Detectar atajos de teclado
« Respuesta #5 en: 31 Enero 2010, 04:22 am »

con un Or vas a agregando mas...por ejemplo CTRL + ALT + 1

Código
  1. If RegisterHotKey(hWnd, 1, MOD_CONTROL Or MOD_ALT, VK_NUMPAD1) = 0 Then

pero fijate que el tercer parametro no podria recibir la tecla "V", mira la documentacion de la api, ahi te explica solo cual pueden ser.

http://msdn.microsoft.com/en-us/library/ms646309%28VS.85%29.aspx

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 #6 en: 31 Enero 2010, 13:01 pm »

ok muchas gracias

mira tengo otra duda, el proceso para ello es el sigueinte

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, 1, 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, 1, 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, 1, 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, 1, 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, 1, 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, 1, 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, 1, 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)
  35.  

y en el modulo es asi:

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.  
  15.    If Msg = WM_HOTKEY Then
  16.       MsgBox "atajos dados"
  17.    End If
  18.    NewWindowProc = CallWindowProc(WinProc, hWnd, Msg, wParam, lParam)
  19.  
  20. End Function

como hago para identificar si se ha dado a ctrl + alt + 2 en vez  de a ctrl + alt + 7 por ejemplo? ya que para identificarlo usan la constante msg y devuelve unicamente el valor de que se ha ejecutado la pulsacion de teclas, una cualquiera

saludos
« Última modificación: 31 Enero 2010, 13:31 pm por 50l3r » 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 #7 en: 31 Enero 2010, 20:00 pm »

En el segundo parametro de RegisterHotKey deben ser todos numeros distintos (imagina, es como un handle del Hotkey) y en el sub NewWindowProc en lparam (o wparam si no me equivoco) devuelve el identificador del hotkey presionado (o sea, el segundo parametro del RegisterHotKey)
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 #8 en: 31 Enero 2010, 22:01 pm »

no te entendi muy bien
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Detectar atajos de teclado
« Respuesta #9 en: 1 Febrero 2010, 00:06 am »

Código:
http://msdn.microsoft.com/en-us/library/bb775233(VS.85).aspx
:-*
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 24,813 Último mensaje 24 Abril 2014, 12:05 pm
por JazMalta
Conoce los atajos de teclado de Windows 8
Noticias
wolfbcn 0 1,556 Último mensaje 13 Marzo 2012, 19:00 pm
por wolfbcn
Toastify, crea atajos de teclado para Spotify en Windows
Noticias
wolfbcn 0 1,330 Último mensaje 10 Febrero 2013, 21:45 pm
por wolfbcn
Si tienes un Mac, memoriza estos 13 atajos del teclado
Noticias
wolfbcn 0 893 Ú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 486 Último mensaje 31 Marzo 2016, 15:00 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines