2

我正在尝试构建一个应用程序,该应用程序在创建或关闭另一个 3rd 方应用程序的特定窗口时创建并关闭它的窗口。关于如何实现这一点的任何指针或示例代码都会有很大帮助。在窗口上,我在 SetWinEventHook 的帮助下实现了同样的事情,方法是注册事件 AccessibleEvents.Create 和 AccessibleEvents.Delete,然后在事件处理程序中检查该窗口类名称。

4

1 回答 1

0

您可以通过 获取 OS X 上所有窗口的列表CGWindowListCopyWindowInfo(),如果您知道目标窗口的详细信息,则可以监控该窗口的可见性并基于此显示/隐藏应用程序的窗口。要处理这些CGWindow*调用,您可能需要查看Apple SonOfGrab 示例代码

或者,如果您的用户为您的应用启用辅助功能支持,您也可以获取有关屏幕上其他进程窗口的信息。

值得指出的是,这两种方法都有些脆弱,因为如果目标应用程序将来发生变化,您的应用程序在尝试在屏幕上找到它时可能无法正常运行。

于 2016-04-06T22:32:13.233 回答