Получите имена приложений, работающих в Mac OS, используя AXUIElement в приложении какао - PullRequest
0 голосов
/ 12 октября 2018

Я использую AXUIElement, чтобы узнать все запущенные приложения в Mac OS.Используя его, когда я перемещаю мышь, я получаю все имена приложений, когда мышь над любым приложением.

Но я хочу отфильтровать приложения, которые выбрал пользователь и какие-либо взаимодействия с ним.Я получаю такие параметры, как AXFocused, AXEnabled, AXSelected, но эти параметры не возвращают true каждый раз, когда приложение выбирается.

"\ nАтрибуты: \ n AXFocused (W):« 0 »\ n AXLayoutCount:« 24 »\ n AXTitle:« »\ n AXPreventKeyboardDOMEventDispatch (W):« 0 »\ n AXElementBusy:« 0 »\ n AXPosition: «x = 1260 y = 219» \ n AXLinkedUIElements: «» \ n AXSelected: «0» \ n AXLanguage: «» \ n AXStartTextMarker: «{length = 40, байтов = 0x060000000000000048730e62050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\ n AXEnabled: «1» \ n AXLoaded: «1» \ n AXVisited: «0» \ n AXDOMIdentifier: «» \ n AXHelp: «» \ n AXLinkUIElements: «» \ n AXChildren: «» \ n AXRole: «AXWebArea »\ n AXParent:« »\ n AXSelectedTextMarkerRange (W):« {startMarker: {length = 40, байты = 0x1300000000000000a853046205000000 ... 0100000000000000} endMarker: {length = 40, 000000000000000000000000000000000000000000000000000000000000000000n AXTopLevelUIElement: «» \ n AXDOMClassList: «» \ n AXDescription: «Информационный бюллетень MacRumors» \ n AXURL: «x-webdoc: // 21082B85-5712-4B41-9669-1BF2A39AA32D» \ n AXCaretBrowsingE 0: Wable: 0\ n AXValue: «» \ n AXBlockQuoteLevel: «0» \ n AXRoleDescription: «HTML-контент» \ n AXSize: «w = 785 h = 3416» \ n AXLoadingProgress: «1» \ n AXWindow: «» \ n AXEndTextMarker:«{Length = 40, байты = 0x35010000000000007042fe6505000000 ... 0100000000000000}» \ n AXFrame: «x = 1260 y = 219 w = 785 h = 3416» \ n \ nActions: \ n AXShowMenu - показать меню \ n AXScrollToVisible - AISScibleX - Видимый -n "

Например, выше, когда я открыл" Почту ".

, поэтому у меня следующие вопросы: 1) можно ли отфильтровать приложение, которое выбрал пользователь, а не просто навести на него курсор мыши??2) есть ли другой способ узнать, с каким пользователем приложения взаимодействовал, прежде чем получить доступ к моему приложению?

1 Ответ

0 голосов
/ 12 октября 2018

Наконец-то пришло решение.

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

Ознакомьтесь с этим ответом, который помог мне найти решение. Как получить приложение OSX, которое в данный момент получает ключевые события

...