2013-01-11 47 views
63

Tworzymy sterownik urządzenia użytkownika dla systemu OS X, który przesuwa kursor przy użyciu zdarzeń kwarcowych, i wystąpił problem, gdy gry - szczególnie te uruchamiane w trybie okienkowym - nie mogą poprawnie uchwycić wskaźnik myszy (= zawiera/zachowuje go w granicach swoich okien). Na przykład wychodzi poza okno gry i kliknie na pulpit lub w pobliżu nieaktywnych aplikacji.Wykrywanie CGAssociateMouseAndMouseCursorPosition

Możemy to naprawić, jeśli tylko będziemy mogli wykryć, kiedy aktywna aplikacja wywołuje CGAssociateMouseAndMouseCursorPosition.

Jak to zrobić? Wszelkie pomysły są doceniane.

+0

nie sposób przedstawić jako HID kierowcy/urządzenia zamiast wysyłania własnych wydarzeń? To może być podejście ... – nielsbot

Odpowiedz

-1

Napisałem kilka różnych logicznych warstw myszy (do łączenia różnych urządzeń wejściowych itp.). Odkryłem, że zahaczenie o zdarzenie WM_INPUT na poziomie systemu operacyjnego jest pewnym sposobem uzyskania informacji o pozycji myszy w czasie rzeczywistym. Istnieje również mniej rygorystyczne rozwiązanie polegające na pobieraniu potrzebnych danych myszy z jednej z bardzo prymitywnych bibliotek systemu Windows. Są błyskawicznie szybkie. Możesz sondować na zegarze 10ms i nigdy nie zobaczyć utraty wydajności na nowoczesnej maszynie.

+0

Nie rozumiem, jak to dotyczy mojego problemu w OS X. – Dae