Я создаю небольшой инструмент, такой как 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;
}