有一个赛车游戏,我需要收集遥测和统计数据。并添加一个额外的 HUD
我编了弯路。并且可以使 Hook 更改应用程序窗口的名称。喜欢:
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 的东西
Detour 拦截 OS API 调用,Direct3D 是通过 COM 对象概念实现的。您可能可以拦截 D3D 设备对象创建的第一步,但在这之后您将不得不处理 COM 对象接口(interface),Detour 将无济于事。
我是一名优秀的程序员,十分优秀!