0

我正在尝试创建一个可访问性应用程序,该应用程序将一次输入多个窗口,这两个窗口都不属于我的应用程序。例如,假设您打开了两个 Microsoft Word 文档。当您击键时,我希望命令转到两个窗口。

我曾尝试使用 Quartz 事件服务,但看起来它只允许您在全局或进程级别上发布事件。但是如果两个窗口为同一个进程运行,我如何发布到一个特定的窗口?

还有人在一个窗口中输入的问题,而内容被复制到下一个窗口。

是否可以发布到单个窗口?

PS 我知道在 Windows 中可以做到这一点

4

1 回答 1

1

MacOS X 包含一些可能有用的工具。您应该查看 Accessibility 框架、Automator 操作和 AppleScript。您还应该了解特定于应用程序的解决方案;例如,对于 Word,您可能会查看 VBA(Visual Basic for Applications)。所有这些工具都提供了修改其他应用程序内容的方法。不幸的是,每个应用程序的支持水平因应用程序而异,并且它们的使用方式也各不相同。因此,您不太可能找到适用于所有应用程序的单一解决方案。

您不太可能找到将事件直接插入另一个进程的事件队列的方法。一方面,这将是一个巨大的安全漏洞。即使您能做到这一点,您也确实无法使用您的事件来定位特定窗口。Mac 应用程序使用响应者链将击键发送到“第一响应者”,通常是活动窗口的一个组件。

于 2013-08-02T03:13:36.627 回答