2014-11-08 58 views
1

我使用的是Mac OS X 10.10,我想编写一个程序,该程序不断查找窗口,分析打开的窗口的所有名称。当窗口出现时,我希望程序会寻找带有特定标签的按钮,一旦找到它,应用程序应该发送一个“按下的消息”。 我可以在Windows下完成,但我对Mac不太熟悉。 我发现了一个与我的相关的问题(How do I get a list of the window titles on the Mac OSX?),但我认为最困难的部分是找到按钮并发送一个“按下的消息”。Mac OS X 10.10按标题查找窗口,按标签查找按钮并按下它

预先感谢您!

回答

0

您在寻找的是Accessibilty API。这些主要是Core Foundation C风格的API,通常以AX为前缀。 您可能还想考虑窗口标题之外的其他标识符,因为窗口标题不一定是唯一的。

使用AX API并不容易,而且非常冗长。您可以使用它们来探索用户界面并查找事物并与它们进行交互,但您可能在观察用户交互方面获得更多有限的成功。这可能需要使用NSEvent globalMonitor或CGEventTap根据所涉及的UI小部件进行事件监视更脆弱的组合。

另请注意,使用AX API控制应用程序外部的任何内容都不是沙盒功能。

+0

非常感谢! – Nisba 2015-06-13 12:54:20

+0

虽然我应该注意,如果用户通过将您的应用程序添加到安全首选项来手动启用它,您的应用程序可以控制其他事情。没有一种很好的方式来编程和沙盒兼容 – uchuugaka 2015-06-13 22:09:48