Хороший, чтобы знать то, что это не должно быть развернуто в сайте социальной сети..., который просто оставляет остальную часть сети ;-)
, Что было бы самым полезным, зависит от Вашего виджета. IFrames и JavaScript обычно служат очень отличающимся целям и могут быть смешаны (т.е. JavaScript в iframe или JavaScript, создающий iframe).
Вы проверяли, установлен ли перехватчик, когда он больше не вызывается (т.е. проверять возвращаемое значение из BOOL UnhookWindowsHook)?
Возможно, установлена другая ловушка, которая не сохраняет вашу ловушку, а не вызывает CallNextHookEx ().
Находятся ли важные данные для вашего хука в общем сегменте? Как минимум, это будут HHOOK и HWND целевого окна, которое получает сообщения уведомления.
Попробуйте использовать вместо него WH_MOUSE_LL
.
Правка: о Функция LowLevelMouseProc
Подключаемая процедура должна обрабатывать сообщение за меньшее время, чем данные запись, указанная в Значение LowLevelHooksTimeout в следующий раздел реестра:
HKEY_CURRENT_USER \ Control Panel \ Desktop
Значение в миллисекундах. Если процедура подключения не возвращается во время этот интервал система пройдёт сообщение к следующей ловушке.
Я предполагаю, что функция перехвата реализована в DLL? Возможно, что-то уменьшило количество ссылок на эту DLL, поэтому Windows выгружает ее, что останавливает вашу функцию перехвата.
Я предлагаю, чтобы первое, что вы сделали внутри своей DLL, - это вызвать LoadLibrary для себя, чтобы счетчик ссылок библиотеки DLL, содержащей функцию перехвата, увеличивается на единицу.
You should CloseHandle your hook handle btw.
The only thing i can think of that would cause a crash is if your hook handle has been destroyed. Can you trap the exception? Have you tried break on exception to break when the exception that is occurring occurs? If you don't know what exception is occurring have you tried added a __try/__finally block around your code?