Обнаружение CGAssociateMouseAndMouseCursorPosition

Мы создаем драйвер устройства пользовательского пространства для OS X, который перемещает курсор с помощью Quartz Events, и мы столкнулись с проблемой, когда игры, особенно те, которые работают в оконном режиме, не могут правильно захватить указатель мыши (= содержать/держать его в границах своих окон). Например, он выходит за пределы игрового окна и нажимает на рабочий стол или поблизости неактивные приложения.

Мы могли бы исправить это, если бы только мы могли обнаружить, когда активное приложение вызывает CGAssociateMouseAndMouseCursorPosition.

Как вы это сделаете? Любые идеи приветствуются.

Ответ 1

Я не знаю, поможет ли это вам.

Существует опция под названием Focus Follows Mouse

Фокус следует за мышью - указатель мыши будет автоматически менять фокус на новое окно, если вы нажмете на него, вместо того, чтобы щелкнуть окно, чтобы получить фокус, затем нажмите, чтобы что-то сделать.

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

Ответ 2

Я написал несколько разных логических слоев мыши (для подключения разных устройств ввода и т.д.). Я обнаружил, что подключение к уровню ОС WM_INPUT - это верный способ получения информации о местоположении мыши в режиме реального времени очень. Существует также менее строгое решение для простого опроса данных мыши, которые вам нужны, из одной из самых примитивных DLL файлов Windows. Они молниеносно. Вы можете опросить таймер 10 мс и никогда не видеть потери производительности на современной машине.