2010-04-19 29 views
7

Estamos usando CPNMouse para una aplicación que se ejecuta en Windows XP. Un dispositivo de mouse está separado de la cola de eventos normales, por lo que podemos obtener su posición y eventos y dibujar el cursor nosotros mismos.Varios cursores de mouse en Windows 7

Desafortunadamente, CPNMouse no funciona en Windows Vista/7 (consulte here). ¿Hay alguna biblioteca/SDK que ofrezca las mismas capacidades en Windows 7?

Solo para aclarar: queremos que el cursor "normal" esté presente y dibuje otro cursor, que se debe asignar a un dispositivo de mouse diferente.


actualización: CPNMouse ya no es compatible y su "código abierto" previamente retirado de SourceForge. Only this legacy documentation page exists on the official CPN Tools site.

Parece que sólo los productos comerciales están disponibles ...

Si alguien tiene una copia de la fuente original de la SourceForce por favor enviar un enlace aquí ... Suponiendo que la licencia original fuera una variante estándar de SourceForge (abierta para compartir/expandir), debería estar bien que alguien la bifurque en un nuevo proyecto para continuar el desarrollo (de una herramienta gratuita).

Respuesta

2

Debe usar dsf desde windows ddk para crear un dispositivo de mouse emulado, luego cualquier programa puede aceptar la entrada de ese dispositivo de mouse emulado específico y dibujar el puntero por sí mismo. Por lo tanto, cualquier programa que cree tendrá múltiples dispositivos de mouse en él. Es triste decir que no es posible tener múltiples punteros en Windows 7 OS aunque específicamente no lo admiten. Así que tendrías que dibujar el poiner en la pantalla tú mismo. Me temo que es necesario dibujar un puntero para el mouse

+0

Esto es exactamente lo que CPNMouse está haciendo – kshahar

+0

dsf se usa para probar dispositivos de línea industrial desde Windows XP a Windows 7, incluidas las ediciones de servidor también. – jeffery

+0

Tengo una mejor versión en mi página kinectmultipoint.codeplex.com. Actualmente se está trabajando en eso. Está en dotnet pero estoy casi listo y puedes simplemente tomar el código predeterminado c/C++ en wdk y compilar y obtener el softehci y otros archivos dll que uso en mi archivo vbscript. Estoy buscando Windows 8 alternativa pero parece que no hay ninguno hasta el momento.Intente mirar mi código aunque puede revisarlo para almacenar los datos del mouse de una manera diferente a C++. Puede usar multipunto y hacer que dibuje los dispositivos del mouse por usted o usar algún código dsf para detectar el número de dispositivos del mouse y dibujar en la pantalla. – jeffery

3

Tome un vistazo a la MultiPoint SDK, que permite hasta 25 cursores en la misma pantalla, que también es compatible con Windows 7.

+0

Lo siento, olvidé mencionar que la aplicación no utiliza .NET Framework. Utiliza C++ nativo y Qt 4. – kshahar

+0

Yo y yo apostamos que muchos otros están buscando una forma de usar la segunda pantalla mientras se ejecuta una aplicación o juego de pantalla completa. Los juegos son el mejor ejemplo, generalmente toman posesión de todos los datos activos. Me gustaría utilizar mi monitor de repuesto para operar el sitio web integrado del juego (muchos lo tienen, por ejemplo, BattleField 4) o simplemente navegar y controlar mis propias listas de reproducción de música mientras juego. Para esto, solo una solución de sistema operativo (no API para el uso de una aplicación específica) hará el truco. –

2

¿Quieres la API "Entrada en Bruto", que viene con el SDK de la plataforma de Windows: MSDN: About Raw Input

+0

Conozco la API RawInput, también está disponible en Windows XP. El problema es que no puedo usarlo como mencioné en mi pregunta: en una aplicación con ventana, no es posible dibujar el cursor solo para uno de los dispositivos. – kshahar