这里有一个很难的问题:
我需要能够找到一个字的位置和大小(它的框架)在屏幕上(它的第一次出现就足够了,从那里我应该能够得到下一个)。
例如,我希望能够在(但不限于) Word、Excel和Mac的PowerPoint中以及Safari和其他方面检测单词的位置。
解决方案应尽可能快;我应该能够找到至少5-6字每秒,并使用尽可能少的CPU时间。
到目前为止,我是这样想的:
我的目标是根据包含段落文本的字符串,将所有单词的框架按正确的顺序排列在一个段落中。
谢谢您的提示!
发布于 2009-10-30 21:40:39
作为一个起点,您可能想看看QuickCursor码。它通过AX可访问性API从许多不同的应用程序中检索文本。现在,它不会获取单词的像素位置,但它至少会返回与UI元素中的文本相关联的NSString。当然,这意味着该应用程序必须支持这些app;我不知道MS套件是否会支持这些app。此外,它只支持可编辑的元素,所以Safari中不可编辑的网页也不能工作。但它可能会给你一些想法提供一个起点。
看看QCUIElement.{m,h},然后是QCAppDelegate.m (beginQuickCursorEdit:)中的实现.他抽象的QCUIElement的实现似乎很简单,如:
QCUIElement *focusedElement = [QCUIElement focusedElement];
id value = focusedElement.value;编辑:啊哈!查看可访问性检查器示例代码:UIElementInspector。它实际上可以获得页面上元素的AXPosition。现在,不是一字一句,但我们越来越近了。它将告诉您文本块的x,y位置,以及文本块中包含的单词。
发布于 2009-10-30 23:48:27
这是可能的,但很难得到可靠的工作。您可以使用法术捕手的直接连接特性来查看一个示例。
https://stackoverflow.com/questions/1651938
复制相似问题