SetWindowsHook прекращает работать через какое-то время

Хороший, чтобы знать то, что это не должно быть развернуто в сайте социальной сети..., который просто оставляет остальную часть сети ;-)

, Что было бы самым полезным, зависит от Вашего виджета. IFrames и JavaScript обычно служат очень отличающимся целям и могут быть смешаны (т.е. JavaScript в iframe или JavaScript, создающий iframe).

  • IFrames получил проблемы калибровки; если это, как предполагается, точное соответствие к странице, Вы знаете, что это представляет то же на всех браузерах, данные не переполнятся, это - контейнер и т.д.?
  • IFrames просты. Они могут быть простой, статической страницей HTML.
  • При использовании IFrames, Вы выставляете свой виджет вполне явно.
  • , Но с другой стороны, почему бы не Ваш сторонний сайт просто включают HMTL в данный URL? HTML может затем быть расширен для содержания JavaScript при необходимости в нем.
  • Чистый JavaScript допускает больше гибкости, но за счет некоторой сложности.
5
задан Emmanuel Caradec 8 October 2009 в 16:40
поделиться

5 ответов

Вы проверяли, установлен ли перехватчик, когда он больше не вызывается (т.е. проверять возвращаемое значение из BOOL UnhookWindowsHook)?

Возможно, установлена ​​другая ловушка, которая не сохраняет вашу ловушку, а не вызывает CallNextHookEx ().

3
ответ дан 14 December 2019 в 13:41
поделиться

Находятся ли важные данные для вашего хука в общем сегменте? Как минимум, это будут HHOOK и HWND целевого окна, которое получает сообщения уведомления.

0
ответ дан 14 December 2019 в 13:41
поделиться

Попробуйте использовать вместо него WH_MOUSE_LL .

Правка: о Функция LowLevelMouseProc

Подключаемая процедура должна обрабатывать сообщение за меньшее время, чем данные запись, указанная в Значение LowLevelHooksTimeout в следующий раздел реестра:

HKEY_CURRENT_USER \ Control Panel \ Desktop

Значение в миллисекундах. Если процедура подключения не возвращается во время этот интервал система пройдёт сообщение к следующей ловушке.

1
ответ дан 14 December 2019 в 13:41
поделиться

Я предполагаю, что функция перехвата реализована в DLL? Возможно, что-то уменьшило количество ссылок на эту DLL, поэтому Windows выгружает ее, что останавливает вашу функцию перехвата.

Я предлагаю, чтобы первое, что вы сделали внутри своей DLL, - это вызвать LoadLibrary для себя, чтобы счетчик ссылок библиотеки DLL, содержащей функцию перехвата, увеличивается на единицу.

1
ответ дан 14 December 2019 в 13:41
поделиться

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?

1
ответ дан 14 December 2019 в 13:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: