Título: Hook global para los Windows Messages? Publicado por: Eleкtro en 31 Mayo 2013, 20:43 pm ¿ Alguien sería tán amable de mostrarme un código para crear un Hook de bajo nivel GLOBAL (que funcione FUERA del Form) para manejar los mensajes de windows (En concreto WM_MOUSEWHEEL) ?
Esto he aprendido a hacerlo dentro del Form con la Interface "IMessageFilter", pero cuando lo intento hacer para que funcione fuera del form no hay manera, todo lo que consigo son un par de Fails!, Me han explicado la manera de hacerlo global, se puede hacer importando la librería user32.dll (La función "SetWindowsHookEx") para crear un low-level hook para interceptar los mensajes de Windows, la teoría la tengo, pero no sé hacerlo, me trabo en el punto de intentar usar la función "SetWindowsHookEx" y crear el sub para interceptar los mensajes (if m.message = &HX then...), todo el código que encuentro es para C++/C#, y para lo poco que encuentro de VBNET, (que además tiene poco que ver con los mensajes que quiero interceptar) ni me entero, bastante dificil. Lo que necesito es hacer algo como esto: Pseudo-código: Código
Pero como ya digo, fuera del form. Un saludo. Título: Re: Hook global para los Windows Messages? Publicado por: Maurice_Lupin en 28 Junio 2013, 05:40 am Cuando intento usar funciones de la API en vb.net, siempre recurro a este sitio. Quizá lo haz visitado.
Sobre la función setWindowshookex, encontré esto: http://www.pinvoke.net/default.aspx/user32.setwindowshookex Título: Re: Hook global para los Windows Messages? Publicado por: Eleкtro en 28 Junio 2013, 11:06 am @Maurice_Lupin
Gracias, ya no recordaba que hice esta pregunta xD Al final ya lo conseguí, conseguí usar la API para capturar si la rueda que se mueve es la de arriba o la de abajo, lo que no conseguí era una vez capturado, reproducir ese movimiento del ratón fuera de la APP, es decir mover la rueda del ratón, así que lo dejé a medias. Bueno, un saludo! Título: Re: Hook global para los Windows Messages? Publicado por: Maurice_Lupin en 28 Junio 2013, 22:50 pm Cuando requiero usar funciones de la API, lo que hago es buscar code en C/C++ y pasarlo a VB.NET guiandome con http://www.pinvoke.net
Incluso consegui el serial del USB. Saludos y si puedes postea tu code para aprender. Título: Re: Hook global para los Windows Messages? Publicado por: kub0x en 29 Junio 2013, 00:05 am Cuando requiero usar funciones de la API, lo que hago es buscar code en C/C++ y pasarlo a VB.NET guiandome con http://www.pinvoke.net Yo hago exactamente lo mismo. Primero busco en MSDN implementaciones e info en C/C++ sobre las API a utilizar y después el equivalente en VB.NET (en mi caso) a través de Pinvoke. De esta manera comprendes mejor el funcionamiento y uso de éstas. Recomiendo esta práctica :D Saludos. Título: Re: Hook global para los Windows Messages? Publicado por: Eleкtro en 1 Julio 2013, 11:02 am Acabo de descubrir que para enviar un "scroll up/scroll down" se hace con la función SendInput: http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310%28v=vs.85%29.aspx
si puedes postea tu code para aprender. Código
|