2010-04-19 7 views
7

Stiamo utilizzando CPNMouse per un'applicazione in esecuzione su Windows XP. Un dispositivo mouse è scollegato dalla normale coda eventi, quindi possiamo ottenere la sua posizione e gli eventi e disegnare il cursore da soli.Cursori di mouse multipli su Windows 7

Sfortunatamente, CPNMouse non funziona su Windows Vista/7 (vedere here). C'è qualche libreria/SDK che fornisce le stesse funzionalità su Windows 7?

Giusto per chiarire - vogliamo che il cursore "normale" sia presente e per disegnare un altro cursore, che dovrebbe essere mappato su un altro dispositivo del mouse.


Aggiornamento: CPNMouse non è più supportato e il suo precedentemente "open source" ritirato dal SourceForge. Only this legacy documentation page exists on the official CPN Tools site.

Sembra che solo i prodotti commerciali sono disponibili ...

Se qualcuno ha una copia del sorgente originale da SourceForce si prega di inviare un link qui ... Supponendo che la licenza originale fosse una variante standard di SourceForge (aperta alla condivisione/espansione), dovrebbe essere ok per qualcuno portarla a un nuovo progetto per lo sviluppo continuo (di uno strumento gratuito).

risposta

2

Dovresti utilizzare il dsf da windows ddk per creare un dispositivo mouse emulato, quindi qualsiasi programma può accettare input da quel dispositivo mouse emulato specifico e disegnare il puntatore stesso. Quindi qualsiasi programma che crei avrà più dispositivi mouse. È triste dire che non è possibile avere più puntatori nel sistema operativo Windows 7 anche se non lo supportano. Quindi dovresti disegnare il personaggio sullo schermo da solo. Ho paura che sia necessario disegnare un puntatore per il mouse

+0

Questo è esattamente ciò che sta facendo CPNMouse – kshahar

+0

dsf è usato per testare i dispositivi di linea industriale da windows xp a windows 7 incluse anche le edizioni server. – jeffery

+0

Ho una versione migliore nella mia pagina kinectmultipoint.codeplex.com. È attualmente in lavorazione. È in dotnet ma Iam ha quasi finito e si potrebbe semplicemente prendere il codice c/C++ predefinito in wdk e compilare e ottenere i file softehci e altri dll che uso nel mio file vbscript. Iam alla ricerca di Windows 8 alternativo ma il loro sembra essere nessuno finora.Prova a guardare il mio codice anche se puoi modificarlo per memorizzare i dati del mouse in un modo diverso da C++. È possibile utilizzare Multipoint e farlo disegnare i dispositivi del mouse o utilizzare un codice dsf per rilevare il numero di dispositivi del mouse e disegnare sullo schermo. – jeffery

3

Date un'occhiata al MultiPoint SDK, che consente fino a 25 cursori sullo stesso display, che supporta anche Windows 7.

+0

Mi dispiace, ho dimenticato di dire che l'applicazione non utilizza il framework .NET. Utilizza C++ nativo e Qt 4. – kshahar

+0

Io e Scommetto che molti altri stanno cercando un modo per utilizzare il secondo display durante l'esecuzione di un'app o di un gioco a schermo intero. I giochi sono l'esempio migliore, di solito assumono la proprietà di tutti gli input attivi. Mi piacerebbe usare il mio monitor di riserva per gestire il sito web integrato nel gioco (molti lo hanno, ad esempio BattleField 4) o semplicemente sfogliare e controllare le mie playlist musicali mentre suono. Per questo solo una soluzione del sistema operativo (non API per un'app specifica da utilizzare) farà il trucco. –

2

Si desidera che l'API "Input Raw", che viene fornito con il Platform SDK di Windows: MSDN: About Raw Input

+0

Sono a conoscenza dell'API RawInput, è disponibile anche in Windows XP. Il problema è che non posso usarlo come ho detto nella mia domanda: in un'applicazione con finestre, non è possibile disegnare il cursore solo per uno dei dispositivi. – kshahar