我正在寻找一种能够检测鼠标指针所在文本的方法,无论用户当前使用什么标准 Windows 应用程序(IE、Firefox、Word、记事本等)。这可能吗 ?(老实说,这不是出于邪恶目的!)。我已经尝试过谷歌搜索和搜索,但到目前为止还没有任何有用的东西。

有帮助吗?

解决方案

一些想法:

  1. 使用win32 api查找curser下的控件。然后使用控件相关代码来获取光标下的文本部分。在简单的情况下,WM_GetText 可能就足够了
  2. 我依稀记得有一个可访问性 api 完全可以满足您的需求。但我不记得叫什么了。 http://msdn.microsoft.com/en-us/library/ms697707.aspx 可能是一个起点。
  3. OCR,对于已知字体不应该太难

我会尝试追求可访问性的想法。

其他提示

根据您所指的内容,它在某些情况下可以起作用。

例如。您可以获取底层窗口句柄(hwnd)并将 wm_gettext 发送给它,然后您 可能 得到你想要的东西。(例如。按钮、文本框、一些标签等上的文本)

但是,如果您指向浏览器页面等上的某个位置,它不会执行您想要的操作。

嗯,CodeInChaos 打败了我..

不,这是不可能的——至少在一般情况下是不可能的。唯一的可能性是查询将文本放在屏幕上的应用程序,本质上是询问“你在这个位置放置了什么?”

您可以拍摄屏幕截图,然后使用 OCR 将图像转换为文本。我认为您可以查询操作系统的鼠标光标位置,然后关联它在图像中的位置。

这不是一个好的解决方案,但它给了你一些东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top