Я делаю небольшой инструмент, такой как Displayfusion, и мне нужны некоторые хуки для получения сообщений, когда Windows перемещается/активируется/и т. д., однако я застрял.
Я использую этот проект для хука 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;
}