【问题标题】:How to get text under mouse in any open window如何在任何打开的窗口中获取鼠标下的文本
【发布时间】:2011-09-17 02:14:34
【问题描述】:

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

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

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

非常感谢您的合作。

【问题讨论】:

  • @Anand 我不同意你的观点,这可能很困难和复杂,但绝对不是不可能

标签: c# winapi mouseover


【解决方案1】:

您需要使用 Win API 捕获将文本输出到屏幕的 GDI 调用。

正如this answer 在 SO 中所建议的,

通常对于 GDI 控件,您可以获取控件的位置和大小,并且通常可以获取字体信息。例如,对于静态text controls,您将使用WM_GETFONT。然后,一旦你有了它,你就可以得到鼠标相对于控件位置的位置,并使用字体函数之一,也许像GetTextExtentPoint32 这样来确定光标下的内容。

所以试着在那个方向寻找一些东西。

【讨论】:

    【解决方案2】:

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

    这肯定不容易,需要大量的工作和研究!

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-18
      相关资源
      最近更新 更多