2010-03-20 11 views
11

¡Quiero detectar cuándo se hace clic en mi touchpad!Determine en qué mouse se hizo clic (múltiples dispositivos de mouse) en .NET

Normalmente uso un mouse usb, por lo que no uso el touchpad para nada. En cambio, me gustaría hacer posible realizar una acción en .NET, cuando se hace clic en el panel táctil. De esta manera puedo usarlo como un atajo: un toque y algo genial sucede.

Esto es posible, y si es así, ¿alguna pista de cómo? Preferiría si pudiera funcionar en VB.NET o C#.

Mi teoría es que tendría que hacer un mousehook, que de alguna manera determina de qué dispositivo proviene el clic. Si el clic se determina desde el panel táctil, cancele el clic y haga lo que sea().

Gracias!

* * EDITAR Bueno, ha "resuelto", una especie de :) En una extraña coincidencia, Synaptics lanzó su última versión del controlador y el software para sus paneles táctiles hace unos días con algunas nuevas funcionalidades. Como mi computadora portátil tiene una pantalla táctil sináptica, probé el software y, curiosamente, la funcionalidad para designar los clics en el panel táctil para realizar una acción fue incorporada.

Por lo que se ha logrado la función deseada, sin una línea de código (mi propio código de todos modos :).

La respuesta va para Adrian aunque para el enlace a la biblioteca RawInputSharp. Ayer trabajé con eso, y estoy 90% seguro de que sería posible usarlo para este propósito, en el caso de que una computadora portátil no tenga un trackpad sináptico.

+0

+1: idea realmente genial. –

Respuesta

5

Eche un vistazo a la biblioteca RawInputSharp desde la página this. Utiliza pInvokes en User32.dll para obtener información del dispositivo de entrada. Utilizándolo, puede detectar de qué dispositivo proviene (por ejemplo, el mouse).

Después de haber jugado un poco con él, logré extraer un código que muestra solo la identificación del dispositivo, un valor diferente dependiendo de si uso mi mouse USB o mi touchpad interno. Lo más complicado sería identificar qué identificador de dispositivo es el de su panel táctil automáticamente, pero puede configurarlo manualmente en su aplicación.

+0

Gracias por la respuesta Adrian. He investigado la página, pero parece (como era de esperar) que esto está por encima de mi nivel. Trataré de obtener ayuda y, con un poco de suerte, hacer que funcione. Te mantendré informado/otorgaré una respuesta cuando lo descubramos. –

+1

oh chico, voy a divertirme con esto ahora. Tengo un teclado de 15 teclas que sería increíble vincular un montón de cosas con un servicio. – msarchet

+0

Hola, ¿qué nombre tiene ese teclado? ¡Suena interesante! –

Cuestiones relacionadas