获取任何活动窗口的内容

我正在努力找到一种可靠的方法来获取当前位于前台的窗口的内容/文本。 如果可能,它应该能够确定用户当前正在使用的每个可能程序中的文本

我尝试了什么:

  • 截取当前活动窗口的屏幕截图 ,应用一些filter并运行OCR算法 (tesseract .Net wrapper)。 这可行,但需要很长时间,并不是很准确。
  • 然后我尝试了一些Windows API函数 (FindWindow和SendMessage),如此处所述。 例如,我可以让它运行标准编辑器(记事本),但不适用于大多数其他程序
  • 我还尝试使用AutoHotKey和WinGetText函数以及.Net Wrapper 。 在这里,我只是得到一些关于窗口的信息,但绝不是它的文字……

不幸的是,现在,我没有任何其他想法该做什么,因为我被困在各方面……有人有这方面的经验或知道一种有效的方式吗? 任何建议都非常感谢

很难找到从应用程序检索文本的单一解决方案。 将需要针对不同程序的不同方法。

对于AutoHotkey,使用Acc.ahk的AccViewer是首选的最佳方法。 Acc适用于各种控件以及控件中的元素,它可以覆盖比AutoHotkey的ControlGet命令更多的控件类型。

Acc Library [AHK_L](更新日期:09/27/2012) – 脚本和function – AutoHotkey社区
https://autohotkey.com/board/topic/77303-acc-library-ahk-l-updated-09272012/

Accessible Info Viewer – Alpha Release(2012-09-20) – 脚本和function – AutoHotkey社区
https://autohotkey.com/board/topic/77888-accessible-info-viewer-alpha-release-2012-09-20/

描述一些其他文本检索方法的链接:

AutoHotKey ControlGet

另请注意:

COM(组件对象模型)由AutoHotkey本机处理。 它可用于从Internet Explorer中的Web元素检索文本,并且通过VBA代码,可以从MS Office程序(如MS Excel和MS Word)中检索文本。