2010-09-15 50 views
22

我只是计划实现一些功能,如当鼠标悬停在Mac OS X平台屏幕上的某些文本/字上时,“查找字典”。是否有可能知道在鼠标附近显示哪些文本?

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

什么我可以做的是:

  1. 使用工作台知道应用程序正在运行什么。
  2. 使用可访问性API来了解屏幕上的顶级UIElement。
  3. 如果应用程序使用类似于NSTextView(我通过检查UIElement的“selected text”属性来获取它),使用可访问性API来了解UIElement的选定字符串。

什么我不能做的是:

  1. 如Safari一些应用程序,使用WebKit的框架,唯一的事情,我可以从辅助功能API得到的是“价值属性”,这是当前内容HTML和一些名为“AXTextMarker”的属性。这些属性不能在Google或任何文档中找到。
  2. 有些应用程序甚至不支持Accessibility API,我能得到的仅仅是它的屏幕截图。

有什么方法可以调用系统API来识别图像中的文本吗?在雪豹中,有中文或日文输入的手写识别器功能,所以应该是一些OCR功能?我找不到任何开放的API。

+1

手写识别通常通过手势(端点和暂停/角落)进行,而不是OCR。对典型人物的手写进行OCR不会比从/ dev/random中捕获更好。 ☺ – 2010-09-15 06:44:47

+0

好的,原谅我的愚蠢,因为我真的不知道该去哪里。 – icespace 2010-09-15 07:26:31

+0

然后另一个问题,我可以发送一些事件,甚至可以调用Quartz来重新渲染屏幕上某些区域的文本?也许我可以从中得到某些东西。 – icespace 2010-09-15 07:27:45

回答

2

我们可以得到的任何文本框等的文本使用hook.i没有在Mac试过窗口窗户,但你可以看看下面的文章 SetWindowsHookEx for Mac OS X?

1

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

相关问题