Windows экранная клавиатура и проблемы с java.awt. Робот мыши - PullRequest
1 голос
/ 27 марта 2012

Я использую java.awt.Robot для отправки событий мыши в системе Windows 7 (64-разрядная).Это в основном для преобразования сенсорных событий в ввод мышью.Чтобы пользователи могли вводить символы в приложениях, я планировал повторно использовать встроенную экранную клавиатуру Windows (osk.exe).

Однако я наткнулся на загадку.Любое событие нажатия мыши, генерируемое Robot, которое происходит, когда курсор находится над украшением окна окна OSK (строка заголовка, системное меню и т. Д.), Останавливает мышь.Кажется, обрабатывается только событие нажатия кнопки мыши, так как я вижу, как OSK получает фокус.Robot продолжает отправлять другие события мыши, но они не влияют на окно OSK.Единственный выход - нажать / отпустить физическую USB-мышь, подключенную к системе.

Странно то, что использование OSK для ввода символов путем отправки нажатий мыши на клавиши клавиатуры OSK из Robot работает нормально,Просто попытка переместить (или закрыть) окно OSK останавливает обработку мыши.

Я видел несколько других вопросов об OSK и событиях, указывающих на то, что OSK является чем-то вроде специального приложения.Но мне интересно, в чем разница между событиями мыши, генерируемыми Robot, и событиями от мыши USB, поскольку OSK по-разному реагирует на них и Robot предположительно генерирует собственные события?

...