如何在任何打开的窗口中获取鼠标下的文本

时间:2011-06-17 10:41:20

标签: c# winapi mouseover

我正在开发一个C#语言的项目。我想生成一个类似于Narcis或Easylingo的字典,使用户能够使用鼠标,只需在任何应用程序中将光标移动到WORD上,然后程序就会检测到该字,并找到该特定字的含义。

我的问题是如何在任何应用程序(如Microsoft Office或Web浏览器等)中检测屏幕上鼠标光标下的单词。

我正在寻找任何可以帮助我的提示和指南或任何代码。

非常感谢您的合作。

2 个答案:

答案 0 :(得分:2)

您将需要摆弄Win API捕获GDI调用,将文本输出到屏幕。

正如this answer中关于SO的建议,

  

通常对于GDI控件,您可以获取控件的位置和大小,通常可以获取字体信息。例如,使用静态text controls,您可以使用WM_GETFONT。然后,一旦你有了这个,你可以获得鼠标相对于控件位置的位置,并使用其中一个字体函数,可能像GetTextExtentPoint32那样找出光标下的内容。

所以尝试在那个方向找到一些东西。

答案 1 :(得分:0)

您可以模仿与Spy ++相同的功能并捕获WM_MOUSEMOVE事件,预过滤它们并在鼠标悬停在文本框或类似控件上时进行检测。

这当然不容易,需要做大量的工作和研究!