OSX-如何从另一个进程读取应用程序的标志?

时间:2019-06-06 02:53:26

标签: macos

在OSX中,应用程序可以具有徽章,通常用于显示其收到的通知数量。从另一个过程来看,我想阅读应用程序的徽章。我无法控制该应用程序本身。如何读取徽章?

Badge in slack

更多信息:我正在为OSX Mojave构建一个触摸栏小部件,当闲置中的未读消息时,该组件在触摸栏上显示一个图标。我不想使用Slack API的原因是网络开销:Slack应用程序已经可以处理该网络,因此,我不想浪费带宽来处理额外的请求。我宁愿有一个通用的方法,但是如果有一个特定于Slack的解决方案就可以了。任何语言的答案都是可以接受的。

Intercept sent notifications from an Electron app是相关的,但询问有关拦截通知而不是直接查询徽章的问题。

1 个答案:

答案 0 :(得分:0)

您可以使用AppKit API。在这里找到了可行的解决方案:https://github.com/pigigaldi/Pock/blob/master/Pock/Private/PockDockHelper/PockDockHelper.m

在较高级别上,您可以使用AXUIElementRef将坞站的副本创建为AXUIElementCreateApplication。这要求对应用程序进行无障碍设置授权。从那里,您可以将AXUIElementCopyAttributeValuekAXStatusLabelAttribute一起使用以读取徽章。