有一个赛车游戏,我需要收集遥测和统计数据。并添加额外的HUD
我编译了Detours。并且可以使钩子改变应用程序窗口的名称。就像:
LRESULT (WINAPI * TrueSendMessageW)(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) = SendMessageW;
__declspec(dllexport) LRESULT WINAPI MySendMessageW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
if (Msg == WM_SETTEXT)
return TrueSendMessageW(hWnd, Msg, wParam, (LPARAM)L"new name window");
return TrueSendMessageW(hWnd, Msg, wParam, lParam);
}
...
使用withdll.exe运行它。一切都好。
但我无法弄清楚如何拦截direct3d。在API监视器的帮助下,我发现程序使用的是Microsoft.Xna.Framework.Graphics.dll IDirect3DDevice9 :: SetTexture
有人能说出如何获得这种纹理吗?一般来说,我希望得到类似link
的内容答案 0 :(得分:0)
Detour拦截OS API调用,Direct3D通过COM对象概念实现。您可能可以拦截D3D设备对象创建的第一步,但在此之后您将不得不处理COM对象接口,而Detour将无法帮助您。