是否可以知道鼠标附近显示的文字是什么?

时间:2010-09-15 05:36:53

标签: objective-c cocoa macos

当鼠标悬停在Mac OS X平台上的某些文本/文字上时,我只是计划实现一些功能,例如“在字典中查找”。

如何在屏幕上显示鼠标附近的文字/文字,即使它们不在我自己的应用程序中。

我能做的是:

  1. 使用WorkSpace了解正在运行的应用程序。
  2. 使用辅助功能API了解屏幕上的顶级UIElement。
  3. 如果应用程序使用类似NSTextView的东西,请使用辅助功能API来了解UIElement的选定字符串(我通过检查UIElement的“选定文本”属性来获取它)。
  4. 我不能做的是:

    1. 使用WebKit框架的一些应用程序,如Safari,我可以从Accessibility API获得的唯一内容是“value attribute”,这是HTML的当前内容,以及一些名为“AXTextMarker”的属性。无法在Google或任何文档中找到这些属性。
    2. 有些应用程序甚至不支持Accessibility API,我能得到的只是它的屏幕截图。
    3. 有没有办法调用系统API来识别图像中的文字?在Snow Leopard中,有一个手写识别器功能可以输入中文或日文,那么它应该是一些OCR功能吗?我找不到任何开放的API。

2 个答案:

答案 0 :(得分:2)

我们可以使用Windows hook.i在Windows中获取任何文本框等的文本。我还没有在Mac上试过但你可以查看以下文章 SetWindowsHookEx for Mac OS X?

答案 1 :(得分:1)

你可能做的是这样的:
选择文本后,使用元键+键和弦激活字典。我实际上发现它令人难以置信地令人讨厌,如果每当我接近文本时,会弹出一本字典。特别是因为我阅读了大量的白皮书,几乎所有可以想象的字典都会花费大部分时间来窒息和死亡。