1

我需要找到打开的窗口的坐标,即使它们不是由我的应用程序启动的,经过一番搜索后,我遇到了quartz window services。但是,我链接到的参考文档没有提到它的位置,这是我能找到的唯一文档。我查看了其他框架参考文档,但没有一个提到它。

这个问题显然完全是我自己的无知,我也不想问。但是,我在整个互联网上进行了搜索,并且完全找不到有关石英窗口服务位置的参考。

它在哪里?它是框架的一部分吗?如果是,它属于哪个类?我只知道它包含什么功能,它们看起来正是我需要的!

预先感谢您的任何帮助。另外,如果您知道我将来如何为自己解决这个问题,我也将不胜感激。

注意:我不知道这是否重要,但我打算使用 JNA 从 Java 调用它,而不是从 C 中使用它。

4

2 回答 2

2

是的,这有点不太明显。通过搜索“Quartz Window Services”,我能够找到概述的链接,例如:https ://developer.apple.com/library/mac/#documentation/Carbon/Reference/CGWindow_Reference/Reference/Introduction .html

这表明它在 ApplicationServices 框架中。

于 2012-06-17T00:35:04.313 回答
1

首先,我不能 100% 确定您将如何从 Java 访问 C 方法(我自己从未做过),但如果可以进行桥接,您可以使用 Accessibility API 以获取所有正在运行的应用程序的窗口(请参阅此相关问题的答案)。一旦你有了那个窗口列表,你就可以得到每个窗口在屏幕上所在位置的框架(坐标)。

使用 Accessibility API 的另一件事是,用户必须“选择加入”才能允许它。默认情况下通常不会打开它。

这是另一个与您的问题非常匹配的问题,但接受的答案仅提供了一种解决方案来为您自己的(当前正在运行的)应用程序检索窗口。

于 2012-06-17T00:35:41.167 回答