我正在尝试通过 ExtTextOutW
函数获取文本输出,我想到的第一件事是,去钩住这个函数,例如通过在目标进程中注入(inject) dll .所以从那里我可以获得hdc
、文本和标志。但是,我有多次调用此函数的应用程序,所以我不想 Hook 并检查所有调用。有没有办法,我可以通过 ExtTextOutW
将文本打印在表单上而无需 Hook 它,也许可以在它输出数据的地方使用 hdc
?
最佳答案
Hook 是获取传递给 ExtTextOutW()
的参数数据的唯一方法。如果您只对特定 HDC
的数据感兴趣,则必须相应地进行过滤。但是,HDC
倾向于在需要时动态创建,因此您可能无法过滤实际的 HDC
值本身,因为它每次都会不同。幸运的是,如果 HDC
属于一个窗口(听起来你想拦截对特定窗口的调用),你可以使用 WindowFromDC()
获取正在绘制的 HDC
的 HWND
,然后根据需要对其进行过滤。
关于c - 获取由 ExtTextOut 绘制的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30808200/