Devo essere in grado di impostare la posizione del mouse al centro della schermata/finestra. Come posso farlo?Impostare la posizione del mouse
risposta
La documentazione sembra indicare che CGDisplayMoveCursorToPoint o CGWarpMouseCursorPosition farà quello che stai cercando.
EDIT: per abbinare il vostro ultimo commento, mi sento di raccomandare ulteriori CGWarpMouseCursorPosition
, su cui il docs Stato:
Ad esempio, questa funzione è spesso usato per spostare la posizione del cursore di nuovo al centro dello schermo da giochi che non vogliono il cursore appuntato dai bordi del display.
Ho appena provato questo. Grazie per il tuo aiuto, ma questa funzione sembra ignorare il mio gestore del mouse nel mio gioco. –
@ChaseWalden, per "override" intendi cosa esattamente? Non vengono più chiamati? –
sì. Risponde forse per 2-3 fotogrammi e poi si blocca. –
È possibile utilizzare [NSEvent mouseLocation]
per ottenere la posizione corrente del cursore, ma non sono riuscito a trovare alcun modo per impostare direttamente la posizione al centro dello schermo.
Stavo lavorando a qualcosa del genere la scorsa settimana.
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);
CGEventRef mouse = CGEventCreateMouseEvent (NULL, kCGEventMouseMoved, CGPointMake(X, Y), 0);
CGEventPost(kCGHIDEventTap, mouse);
CFRelease(mouse);
CFRelease(source);
Basta impostare X e Y.
EDIT:
#include <ApplicationServices/ApplicationServices.h>
Questo (finora) funziona alla grande per me. Lo uso insieme a [NSCursor hide] in un'applicazione per avviare video a tutto schermo mescolato (per macchine configurate come installazioni che non hanno interazione con l'utente). Ciò mi consente di impedire che il mouse sia visibile o in bilico sulla barra dei menu. – viperld002
Perché non è possibile che l'utente basta spostare il cursore lì se stessi? – dreamlax
Penso che questa sia una di quelle cose in cui non esiste un modo semplice per farlo perché non è una cosa molto user-friendly da fare. – dreamlax
Non penso che impostare la posizione del mouse su un certo punto sarebbe molto utile ... ma di nuovo non sono troppo sicuro di cosa vuoi dal tuo programma ... – Gabe