API Accessibility Cocoa, могу ли я нажать на окно на заднем плане, не активируя его?
-
02-10-2019 - |
Вопрос
Я искал на вечном видении для этого решения, поэтому я подумал, что буду искать мозговой болот больших умов, чем моих. Я разрабатываю приложение Cocoa, которое использует API доступности для манипулирования другой программой (это приложение Hotkey). Приложение, которое я контролирую, обычно имеет несколько окон открытым, с некоторыми скрытыми за другими. То, что я хотел бы сделать, если это возможно, чтобы отправить события мыши в Windows, используя API доступности таким образом, что нажимает кнопку в окне, не доставляя его на передний план (взаимодействовать с окном, но не активируйте его) Отказ Причина, по которой я пытаюсь сделать это, это то, что отправка события мыши на это другое окно заставит его к переднему плану и нарушает взаимодействие пользователя с главным окном.
Это возможно на Windows - видимо, потому что приложения, похожие на мой, делают это там - но я получаю ощущение, что это невозможно с какао, учитывая способ работы оконного менеджера. Я ошибаюсь?
Решение
Доступность является более высоким уровнем, чем это. Вы отправляете, например, AXPress
Действия AXButton
Объекты, но «PRESS» не обязательно не обязательно нажимают пространственную панель, в то время как вид сфокусирован, например, также является «прессом». AXPress
Это действие высокого уровня, которое означает «сделать вашу вещь», что, очевидно, имеет значение для некоторых взглядов (таких как кнопки), а не другие (такие как поля).
Accessibility Activacting Application имеет смысл, когда вы посмотрите на него по назначению: вспомогательные устройства для пользователей для инвалидов. Если пользователь «нажимает» что-то любые средства, они, вероятно, намерены активировать приложение и работать в нем.
Кварцевые события Услуги Получу тебя почти Там вы можете Создайте кран события для процесса, который вы хотите управлять, и вы можете собираться события и отправить их в кран. Отказ Поймать это Вы можете отправлять только события в кран, когда кран пожары-Ie, когда приложение уже имеет мероприятие для решения. Когда это не так, ты застрял.