在C#中的另一个程序中读取用direct3d呈现的文本

Reading text rendered with direct3d in another program in C#

本文关键字:direct3d 文本 程序 另一个 读取      更新时间:2023-10-16

我对编程并不陌生,但我有Unix/Linux背景,Windows编程对我来说有点陌生。如果我安装了另一个程序并正在运行,该程序使用Direct3d渲染文本,我想挂接到这些文本渲染例程中,读取正在绘制的内容以及在屏幕上绘制的位置。

我已经编写了一个C#程序,它可以找到我感兴趣的进程的句柄,并可以通过模拟鼠标点击和键盘敲击来与它交互。然而,它使用屏幕截图的校验和来确定屏幕上发生了什么,这太笨拙了。OCR在这里也不是一个好的选择。我以前编程过C/C++,所以如果我需要使用它来代替C#,或者与C#结合使用,那没关系。

我已经对此进行了广泛的搜索,我很确定这是可能的,但有人知道一些关于如何开始使用的教程/示例吗?

实现这一点的一种方法是使用来自微软研究的Detours库,尽管它们可能仍有免费使用的选项。