如何使用C#检测鼠标指针所在的文本?

时间:2010-12-03 23:06:48

标签: c# interop cursor mouse-position

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

4 个答案:

答案 0 :(得分:2)

一些想法:

  1. 使用win32 api在光标下找到控件。然后使用控制相关代码获取光标下的文本部分。在简单的情况下,WM_GetText可能就足够了
  2. 我含糊地回忆说,有一个可访问性api完全按照你的意愿行事。但我不记得被称为什么。 http://msdn.microsoft.com/en-us/library/ms697707.aspx可能是一个起点。
  3. OCR,使用已知字体不应该太难
  4. 我会尝试追求无障碍的想法。

答案 1 :(得分:2)

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

例如。你可以获得底层窗口句柄(hwnd)并向它发送wm_gettext,你可能得到你想要的东西。 (例如按钮,文本框,某些标签等上的文字)

但是,如果你将某些内容指向浏览器页面,它将无法满足您的需求。

嗯,CodeInChaos打败了我..

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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