Nie mam pojęcia, jak haki okienne działają na "poziomie systemu". MSDN dotyka tylko to, co dzieje się na bardzo krótko:Haki do okien - jak one działają?
Hak jest punkt w mechanizmie System wiadomość obsługi gdzie aplikacja można zainstalować podprogram do monitorowania ruchu wiadomość w typy systemów i procesów pewne wiadomości zanim osiągną procedurę docelowego okna .
Mój najlepszy przypuszczenie jest coś takiego jak poniżej:
Przed każda wiadomość jest dodawany do kolejki komunikatów dla okna, to będzie najpierw wysłać wiadomość do globalnych/local haków, które mogą coś zrobić, w zależności od ich procedur hakowania. Po wszystkich hakach globalnych i lokalnych przechwytaniach wiadomość jest ostatecznie dodawana do kolejki komunikatów okna.
Jednak MSDN mówi, że dla niektórych typów haków, będzie monitorować events
, notifications
itp
Przykładem jest haczyk WH_MOUSE_LL
:
Instaluje procedura haka, który monitoruje nisko- poziom mysz zdarzenia wejściowe. Aby uzyskać więcej informacji, zobacz procedurę LowLevelMouseProc hook .
Kiedy mówią: events
, czy mówimy wiadomości w oknie, czy też mają na myśli coś innego?
Czy wszystko jest źle?
Punkty premiowe za wizerunek odręcznego diagramu. – rkb
Oto małe wyjaśnienie http://b.1asphost.com/mmbaig/Tutorials/Windows_Hooks.html –
Wiele haczyków bazuje na komunikatach. Ale nie o haczyku, o którym mówisz, jest ono faktycznie wyzwalane przez "wydarzenie". Działa tylko * przed * Windows tworzy wiadomość i umieszcza ją w kolejce komunikatów okna, na którym jest fokus. Porównaj z WH_MOUSE, globalnym hakiem, który działa, gdy aplikacja wywołuje Get/PeekMessage i ma zamiar pobrać komunikat myszy z kolejki komunikatów. Tak naprawdę jest wyzwalany przez wiadomość. –