我试图通过ExtTextOutW
函数获取文本输出,我想出的第一件事就是将该函数挂钩,例如通过在目标进程中注入dll。所以从那里我可以获得hdc
,文本和标志。但是,我有多次调用此函数的应用程序,所以我不想挂钩并检查所有调用。有没有办法,我可以在不挂钩的情况下通过ExtTextOutW
在表单上打印文本,也可以使用hdc
输出数据?
答案 0 :(得分:3)
挂钩是获取传递给ExtTextOutW()
的参数数据的唯一方法。如果您只对特定HDC
的数据感兴趣,则必须相应地进行过滤。但是,HDC
s往往是在需要时动态创建的,因此您可能无法过滤实际的HDC
值本身,因为每次都会有所不同。幸运的是,如果HDC
属于一个窗口(听起来你想拦截特定窗口的调用),你可以使用WindowFromDC()
来获取HWND
HDC
正在绘制的,然后根据需要对其进行过滤。