获取ExtTextOut绘制的文本

时间:2015-06-12 16:41:45

标签: c winapi text printing output

我试图通过ExtTextOutW函数获取文本输出,我想出的第一件事就是将该函数挂钩,例如通过在目标进程中注入dll。所以从那里我可以获得hdc,文本和标志。但是,我有多次调用此函数的应用程序,所以我不想挂钩并检查所有调用。有没有办法,我可以在不挂钩的情况下通过ExtTextOutW在表单上打印文本,也可以使用hdc输出数据?

1 个答案:

答案 0 :(得分:3)

挂钩是获取传递给ExtTextOutW()的参数数据的唯一方法。如果您只对特定HDC的数据感兴趣,则必须相应地进行过滤。但是,HDC s往往是在需要时动态创建的,因此您可能无法过滤实际的HDC值本身,因为每次都会有所不同。幸运的是,如果HDC属于一个窗口(听起来你想拦截特定窗口的调用),你可以使用WindowFromDC()来获取HWND HDC正在绘制的,然后根据需要对其进行过滤。