大家好,
我和一个朋友正在讨论一个新项目的可能性:一个翻译程序,只要你将鼠标悬停在任何控件中的任何单词上,甚至是静态的、不可编辑的单词上,就会弹出翻译。我知道有很多浏览器插件可以在网页上执行此类操作;我们正在考虑如何在系统范围内(在 Windows 上)做到这一点。
当然,关键的困难是弄清楚用户将鼠标悬停在哪个单词上。我知道 MSAA 和自动化,但据我所知,这些东西只允许您获取控件的全部内容,而不是鼠标悬停的特定单词。
我偶然发现了这个(专有)应用程序,它几乎完全符合我们想要做的事情:http://www.gettranslateit.com/
不知何故,他们能够获得用户在几乎所有应用程序中悬停的确切单词(在一些应用程序中似乎遇到了问题,尤其是 Windows 资源管理器)。它甚至以某种方式从明显自定义绘制的控件中抓取文本。一开始我以为一定是用OCR。但即使当我将字体缩小到文本变成完全无法阅读的斑点时,它仍然可以完美地识别单词。 (然而,如果我将字体更改为 Wingdings,它不会识别任何内容。但也许这是设计使然?)
关于如何实现这个看似不可能的任务有什么想法吗?
编辑:它不适用于 Wingdings,但它确实适用于其他一些无意义字体,所以我已经确认它不能是 OCR。
您可以捕获将文本输出到显示器的 GDI 调用,然后找出光标所在的单词的边界框。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)