2013-01-11 14 views
63

Stiamo creando un driver di dispositivo dello spazio utente per OS X che sposta il cursore utilizzando Quartz Events e abbiamo riscontrato un problema quando i giochi, in particolare quelli in esecuzione in una finestra, non sono in grado di catturare correttamente puntatore del mouse (= contenere/tenerlo entro i limiti delle loro finestre). Ad esempio, andrebbe fuori dalla finestra di gioco e fare clic sul desktop o nelle applicazioni inattive vicine.Rilevamento di CGAssociateMouseAndMouseCursorPosition

Potremmo risolvere questo problema se solo potessimo rilevare quando un'applicazione attiva chiama CGAssociateMouseAndMouseCursorPosition.

Come lo faresti? Qualsiasi idea è apprezzata.

+0

non c'è modo di presentare come un driver/dispositivo HID, piuttosto che inviare i tuoi eventi? Questo potrebbe essere un approccio ... – nielsbot

risposta

-1

Ho scritto alcuni livelli logici del mouse diversi (per il collegamento di dispositivi di input diversi, ecc.). Ho scoperto che l'aggancio nell'evento WM_INPUT a livello di sistema operativo è un modo sicuro per ottenere informazioni sulla posizione del mouse in tempo reale su molto. Esiste anche una soluzione meno rigorosa di eseguire il polling dei dati del mouse necessari da una delle DLL molto primitive di Windows. Sono fulminei. È possibile eseguire il polling su un timer da 10 ms e non vedere mai la perdita di prestazioni su una macchina moderna.

+0

Non capisco come questo si applica al mio problema in OS X. – Dae

1

Non so se questo può aiutare a

C'è un'opzione chiamata a fuoco segue il mouse

focus segue il mouse - il puntatore del mouse catturerà automaticamente cambiare il focus in un inisde questa applicazione se si passarci sopra, invece di dover fare clic su una finestra per mettere a fuoco, quindi fare clic per fare qualcosa.

http://wineskin.urgesoftware.com/tiki-index.php?page=Manual+4.6+Advanced+-+Options