找到一个词的框架的位置(位置和大小)在屏幕上使用可可或碳
-
22-07-2019 - |
题
这是一个艰难的一:
我需要能够找到一个词的位置和大小(其框架)上的屏幕(其第一次发生是不够的,从那里,我应当能够获得下一部分)。
例如,我想到的是能够检测词职位(但不限于)Word、Excel和PowerPoint,以及野生动物园和其他人。
该解决方案应该以最快的速度成为可能;我应该可以找到至少5-6的话每秒和用作小CPU时间为可能。
这里就是我想的这样远:
- OCR在一窗口的截图/图文(任何良好的开放源框架,该框架工作在Mac OS X10.4和可用于在一商业产品?).非常非常好的点的话,在图像。我不知道,如果它使用一个定义在内的发动机或开放源/商业的一个,但这将是一种引擎,我想到使用,如果这是一个"有效"解决方案。理想的是我会检测一词的框架中积极应用程序的窗口(如何让框架的另一个应用程序?).
- 获得某种形式的"挂钩",在石英绘图的文字和拦截的位置词时,它绘制的(不看起来很可行第一眼看!).
- AppleScript,但它在很大程度上取决于什么API的应用程序提供了(我不认为你可以得到一个词的坐标在Word文档从我所看到的)和它的 慢.
- ...出来的想法...
我的目标是获得所有的字的框架中的一个段落中的权利以基于一个包含的文字的段落。
预先感谢任何的暗示!
解决方案
作为一个起点,你可能想看一看 QuickCursor的代码.它检索文本,从众多不同的应用程序通过 AX性Api.现在,它不会抢素的放置一词,但它至少返回的NSString相关案文在这UI元。当然这意味着应用程序的问题以支持这些Api;我不知道如果MS Office suite会。此外,它只支持可编辑的要素,因此联合国可编辑的网页在Safari不会的工作。但它可以给你一个起点的一些想法。
看看 QCUIElement.{m,h}
, ,然后实施的 QCAppDelegate.m
(beginQuickCursorEdit:
)...执行他的抽象QCUIElement似乎是简单的:
QCUIElement *focusedElement = [QCUIElement focusedElement];
id value = focusedElement.value;
编辑:啊哈!检查出性检查样品代号: UIElementInspector.实际上,它可以得到AXPosition的元素在一个页面上。现在,它不是逐字,但我们越来越近。它会告诉你的x、y放置一个文本块,以及对话中包含的文本块.
其他提示
这是可能的,但很难获得工作的可靠性。你可以玩 拼捕的直接连接 功能看到一个例子。
不隶属于 StackOverflow