Visual Basic - Hook... subclass???

Life is soft - evento anual de software empresarial
 
Vista:

Hook... subclass???

Publicado por Jeronimo (49 intervenciones) el 21/02/2007 05:51:35
Hola a todos!
Necesito que mi aplicación conozca las teclas que se presionen en el teclado y, si es la que me interesa, se realice alguna tarea especial; si no, que deje que esa pulsación llegue a destino.
Para ser más claro: por ejemplo, si alguien está escribiendo en Word, mi programa no debe hacer nada (es decir, dejar que lo que se escriba salga en el Word) hasta que se presione una combinación de taclas que defina en mi programa (ej. Ctrl+Shift+P). En ese caso, esa pulsación no debe llegar a destino (en este caso, al Word). Pongo por ejemplo el Word, pero esto debe suceder a nivel global en la computadora, es decir, en cualquier aplicación.
He leído algo acerca de hooking y subclassing, pero la verdad, no encontré ningún ejemplo claro de cómo hacerlo. ¿Alguien me podría decir dónde encontrar algún ejemplo de esto?
Muchas gracias!

Jerónimo
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:Hook... subclass???

Publicado por benjo (679 intervenciones) el 01/03/2007 20:37:45
Lo que tratás de conseguir es un HotKEy global y escribirlo en este espacio es realmente imposible.
Te envio un ejemplo por email, del encapsulamiento de un HotKey , en donde podés modificar cuanto quieras y crear tu propio UserControl.

Las combinaciones pueden ser Alt - Ctl - Shift - o Tecla Win, en combinación con cualquir otra tecla.

Espero que te sirva.
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

RE:Hook... subclass???

Publicado por Jerónimo (49 intervenciones) el 01/03/2007 23:53:34
Benjo: 1.000.000 de gracias!!!
Lo veo y luego te cuento cómo me resultó.
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

RE:Hook... subclass???

Publicado por Mr. Sade (322 intervenciones) el 02/03/2007 03:12:05
lo que necesitas es un gancho de teclado global, (Keyboard Hook)
no posible desde VB ya que se necesita que el codigo este en una DLL simple y VB6 solo crea DLL tipo COM.

lee mas sobre WH_KEYBOARD
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

RE:Hook... subclass???

Publicado por Benjo (679 intervenciones) el 06/03/2007 00:54:52
En realidad, los unicos Hook o ganchos que no se pueden implementar desde Visual Basic son los WH_CBT que son Hook de "Training" o entrenamiento. Su alcance global, solo se logra obtener de librerias C++.
Todos los demás Hook, son funcionales 100% desde Visual.
Obviamente que sería mucho más sencillo y menos peligroso implementarlos desde C++, pero para eso uno tendría que aprender otro lenguaje de Programación.
Si aprendes C++, para que programar en Visual Basic. ¿No?

Igualmente para lo que desea Jeronimo, le basta con las APIS

Private Declare Function RegisterHotKey Lib "user32" _
(ByVal hwnd As Long, ByVal id As Long, _
ByVal fsModifiers As Long, ByVal vk As Long) As Long

Private Declare Function UnregisterHotKey Lib "user32" _
(ByVal hwnd As Long, ByVal id As Long) As Long

Y un Hook para el mensaje WM_HOTKEY

Public Const WM_HOTKEY = &H312
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

RE:Hook... subclass???

Publicado por Orlando (1 intervención) el 18/03/2007 16:22:43
Quiro espesializarme en lo ques programación
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