Można też skorzystać z mechanizmu tzw. event hooks, dzięki którym aplikacja „podsłuchuje” zdarzenia innej aplikacji lub całego systemu. Jest to stosowane przez debuggery i aplikacje hackerskie (np. keylogger może podglądać hasła wpisywane przez użytkownika przechwytując zdarzenia klawiatury), odtwarzacz muzyki może skorzystać z mechanizmu hooków aby możliwe było sterowanie odtwarzaniem przy pomocy klawiatury i bez konieczności przełączania się do jego okna.

Zobacz też: Programowanie zdarzeniowe.

Zdarzenia w systemie Windows W Windows kolejki zdarzeń są przypisane do wątków, jednak każde zdarzenie zawiera uchwyt okna, w związku z czym bywają one określane jako window message. Pojęcie okna w systemie Windows obejmuje nie tylko okienko na ekranie. Oddzielnymi „oknami” są też np. wnętrze okna, dowolny element okna (każdy przycisk czy tekst), tło ekranu.

Definicja zdarzenia w systemie Windows, tak jak widzi je aplikacja: typedef struct tagMSG { HWND hwnd; /*Uchwyt okna docelowego*/ UINT message; /*Kod określający rodzaj zdarzenia (zobacz niżej)*/ WPARAM wParam; /*Parametr – interpretacja zależna od rodzaju zdarzenia*/ LPARAM lParam; /*Parametr – interpretacja zależna od rodzaju zdarzenia*/ DWORD time; /*Czas zdarzenia*/ POINT pt;