¿Múltiples punteros del mouse?
-
04-07-2019 - |
Pregunta
¿Hay alguna forma de aceptar entradas de más de un mouse por separado? Estoy interesado en crear una aplicación multiusuario y pensé que sería genial si pudiera tener 2 o más usuarios con ratones inalámbricos, cada uno interactuando con la aplicación individualmente con una flecha de ratón separada.
¿Es esto algo que debería intentar agrupar en alguna otra aplicación / driver / os_magic? ¿O hay una biblioteca que puedo usar para lograr esto? El idioma no es un trato ENORME , pero C, C ++ y Python son preferibles.
Gracias :)
editar:
Encontré este kit de herramientas de múltiples punteros para linux (en realidad es un servidor x de múltiples punteros): http://wearables.unisa.edu.au/mpx/
Solución
Puede probar Microsoft Windows MultiPoint Software Development Kit 1.1
o el nuevo Kit de desarrollo de software de Microsoft Windows MultiPoint 1.5
y el sitio principal Microsoft Multipoint
Otros consejos
Sí. Sé de al menos un programa que hace esto, KidPad . Creo que está escrito en Java y fue desarrollado por Juan Pablo Hourcade , ahora en la Universidad de Iowa. Tendrías que preguntarle cómo se implementó.
http://code.google.com/p/pymultimouse/ es una biblioteca utilizando Windows Raw Input, funcionó en una prueba con 2 ratones.
Puedes usar DirectInput con C / C ++ (probablemente también haya enlaces en otros idiomas). Utiliza IDirectInput8 :: EnumDevices ()
(usando DX8; misma función, interfaz diferente en otras versiones de DirectX) para obtener una lista de todos los dispositivos conectados. Luego, crea los dispositivos y sondea los IDirectInputDevice8 :: Encuesta ()
. Esto debería funcionar casi definitivamente con cualquier número de ratones, teclados y otros dispositivos de entrada. MSDN tiene muy buena documentación sobre esto.
Tengo esta vaga sensación de que BeOS solía permitir que uno emparejara un mouse y un teclado y tuviera ventanas y entradas activas separadas. Wow ... eso fue hace mucho tiempo. Pensé que sería muy interesante para " emparejado " programación.
Vea mi respuesta aquí (evite las cosas de JNI): ¿Cómo puedo manejar múltiples entradas del mouse en Java?