macos - 在可可应用程序中使用 AXUIElement 获取在 Mac OS 中运行的应用程序名称
问题描述
我正在使用 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, bytes = 0x060000000000000048730e6205000000 ... 0100000000000000}”\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:{长度= 40,bytes = 0x130000000000000000A853046205000000 ... 01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000.0000000000000000来n AXDOMClassList: “”\n AXDescription:“MacRumors 时事通讯”\n AXURL: “x-webdoc://21082B85-5712-4B41-9669-1BF2A39AA32D”\n AXCaretBrowsingEnabled (W): “0”\n AXValue: “”\n AXBlockQuoteLevel: “0”\n AXRoleDescription: “HTML 内容”\n AXSize: “w=785 h=3416”\n AXLoadingProgress: “1”\n AXWindow: “”\n AXEndTextMarker: “{length = 40, bytes = 0x35010000000000007042fe6505000000 ... 010000000000000}” \n AXFrame: “x=1260 y=219 w=785 h=3416”\n\nActions:\n AXShowMenu - 显示菜单\n AXScrollToVisible - AXScrollToVisible\n"字节 = 0x35010000000000007042fe6505000000 ... 0100000000000000}”\n AXFrame:“x=1260 y=219 w=785 h=3416”\n\n操作:\n AXShowMenu - 显示菜单\n AXScrollToVisible - AXScrollToVisible\n”字节 = 0x35010000000000007042fe6505000000 ... 0100000000000000}”\n AXFrame:“x=1260 y=219 w=785 h=3416”\n\n操作:\n AXShowMenu - 显示菜单\n AXScrollToVisible - AXScrollToVisible\n”
例如上面是,当我打开“邮件”时。
所以我的问题是:1)是否可以过滤掉用户选择的应用程序而不仅仅是鼠标悬停?2)在访问我的应用程序之前,有没有其他方法可以找出正在与哪个应用程序用户进行交互?
解决方案
终于得到了解决方案。
当应用程序使用 NSWorkSpace 激活时,我们可以让任何其他应用程序在 Mac 中运行。
查看这个答案,它帮助我找到了解决方案。如何检索当前接收关键事件的 OSX 应用程序
推荐阅读
- python - group_by ModuleNotFoundError:没有名为“dfply.group”的模块;'dfply' 不是一个包
- c# - HttpContext.RequestServices 如何无法解析范围服务?
- api - 搜索仅使用确切的关键字 - woocommerce
- angular - mat-spinner 不会停止旋转
- javascript - 如何将数字转换为文本 Javascript?
- python - mysql.connector.connect() 是否记得它的启动时间并且不显示带有时间戳的数据?
- android - 如何在点击时更新我的地图在 Google 地图中的位置?
- apache-kafka - 带有自定义 JSON 序列化程序的 Kafka Streams
- excel - 如何使用 Power Query 对类似调查答案的数据进行分组
- postgresql - 在 PostgreSQL 中计算不包括周末的天数