我正在制作一个像 Displayfusion 这样的小工具,当 Windows 移动/激活/等时我需要一些 Hooks 来接收消息,但是我被卡住了..
我将此项目用于 CallWndProc 挂钩: http: //www.codeproject.com/KB/system/WilsonSystemGlobalHooks.aspx
对于几乎所有的窗口(x86 和 x64)它都工作得很好,但是在某些窗口上它似乎无法注入钩子 DLL。目前我在使用 adobe reader X 时遇到问题。没有从该窗口收到任何消息。我认为这与沙盒有关?有人可以推动我朝着正确的方向前进吗?
钩子的初始化代码:
bool InitializeCallWndProcHook(int threadID, HWND destination)
{
if (g_appInstance == NULL)
return false;
if (GetProp(GetDesktopWindow(), "WILSON_HOOK_HWND_CALLWNDPROC") != NULL)
SendNotifyMessage((HWND)GetProp(GetDesktopWindow(), "WILSON_HOOK_HWND_CALLWNDPROC"), RegisterWindowMessage("WILSON_HOOK_CALLWNDPROC_REPLACED"), 0, 0);
SetProp(GetDesktopWindow(), "WILSON_HOOK_HWND_CALLWNDPROC", destination);
hookCallWndProc = SetWindowsHookEx(WH_CALLWNDPROC, (HOOKPROC)CallWndProcHookCallback, g_appInstance, threadID);
return hookCallWndProc != NULL;
}