Condividi tramite


Ganci

Un hook è un punto nel meccanismo di gestione dei messaggi di sistema in cui un'applicazione può installare una subroutine per monitorare il traffico dei messaggi nel sistema ed elaborare determinati tipi di messaggi prima di raggiungere la routine della finestra di destinazione.

In questa sezione

Nome Descrizione
Panoramica hook di Viene illustrato come usare gli hook.
uso di hook Illustra come eseguire attività associate agli hook.
di riferimento hook Contiene il riferimento all'API.

Funzioni hook

Nome Descrizione
CallMsgFilter Passa il messaggio e il codice hook specificati alle procedure hook associate alle procedure hook WH_SYSMSGFILTER e WH_MSGFILTER.
CallNextHookEx Passa le informazioni sull'hook alla routine hook successiva nella catena di hook corrente. Una routine hook può chiamare questa funzione prima o dopo l'elaborazione delle informazioni sull'hook.
CallWndProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione prima di chiamare la routine della finestra per elaborare un messaggio inviato al thread.
callWndRetProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione dopo la chiamata della funzioneSendMessage. La procedura hook può esaminare il messaggio; non può modificarlo.
CBTProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione prima di attivare, creare, distruggere, ridurre al minimo, massimizzare, spostare o ridimensionare una finestra; prima di completare un comando di sistema; prima di rimuovere un evento del mouse o della tastiera dalla coda dei messaggi di sistema; prima di impostare lo stato attivo della tastiera; o prima della sincronizzazione con la coda dei messaggi di sistema. Un'applicazione CBT (Computer-Based Training) usa questa procedura hook per ricevere notifiche utili dal sistema.
DebugProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione prima di chiamare le procedure hook associate a qualsiasi tipo di hook. Il sistema passa informazioni sull'hook da chiamare alla DebugProc routine hook, che esamina le informazioni e determina se consentire la chiamata dell'hook.
ForegroundIdleProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione ogni volta che il thread in primo piano sta per diventare inattiva.
GetMsgProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione ogni volta che la funzione GetMessage o PeekMessage ha recuperato un messaggio da una coda di messaggi dell'applicazione. Prima di restituire il messaggio recuperato al chiamante, il sistema passa il messaggio alla routine hook.
JournalPlaybackProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. In genere, un'applicazione usa questa funzione per riprodurre una serie di messaggi del mouse e della tastiera registrati in precedenza dalla routine hook JournalRecordProc. Se è installata una JournalPlaybackProc procedura hook, l'input normale del mouse e della tastiera è disabilitato.
journalRecordProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. La funzione registra i messaggi che il sistema rimuove dalla coda dei messaggi di sistema. Successivamente, un'applicazione può usare un JournalPlaybackProc procedura hook per riprodurre i messaggi.
keyboardProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione ogni volta che un'applicazione chiama la funzione GetMessage o PeekMessage e viene visualizzato un messaggio di tastiera (WM_KEYUP o WM_KEYDOWN) da elaborare.
LowLevelKeyboardProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione ogni volta che un nuovo evento di input da tastiera sta per essere inserito in una coda di input del thread.
LowLevelMouseProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione ogni volta che un nuovo evento di input del mouse sta per essere inserito in una coda di input del thread.
MessageProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione dopo che si verifica un evento di input in una finestra di dialogo, una finestra di messaggio, un menu o una barra di scorrimento, ma prima dell'elaborazione del messaggio generato dall'evento di input. La procedura hook consente di monitorare i messaggi per una finestra di dialogo, una finestra di messaggio, un menu o una barra di scorrimento creata da un'applicazione specifica o da tutte le applicazioni.
mouseProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione ogni volta che un'applicazione chiama ilGetMessageo funzione PeekMessage ed è presente un messaggio del mouse da elaborare.
SetWindowsHookEx Installa una routine hook definita dall'applicazione in una catena di hook. Si installerebbe una procedura hook per monitorare il sistema per determinati tipi di eventi. Questi eventi sono associati a un thread specifico o a tutti i thread nello stesso desktop del thread chiamante.
shellProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. La funzione riceve le notifiche degli eventi shell dal sistema.
SysMsgProc Funzione di callback definita dall'applicazione o definita dalla libreria usata con la funzioneSetWindowsHookEx. Il sistema chiama questa funzione dopo che si verifica un evento di input in una finestra di dialogo, una finestra di messaggio, un menu o una barra di scorrimento, ma prima dell'elaborazione del messaggio generato dall'evento di input. La funzione può monitorare i messaggi per qualsiasi finestra di dialogo, finestra di messaggio, menu o barra di scorrimento nel sistema.
UnhookWindowsHookEx Rimuove una procedura hook installata in una catena di hook dalla funzione SetWindowsHookEx.

Notifiche hook

Nome Descrizione
WM_CANCELJOURNAL Inviato a un'applicazione quando un utente annulla le attività di inserimento nel journal dell'applicazione. Il messaggio viene pubblicato con un handle di finestra NULL.
WM_QUEUESYNC Inviato da un'applicazione CBT per separare i messaggi di input utente da altri messaggi inviati tramite la procedura di WH_JOURNALPLAYBACK.

Strutture hook

Nome Descrizione
CBT_CREATEWND Contiene informazioni passate a una routine hook WH_CBT, CBTProc, prima che venga creata una finestra.
CBTACTIVATESTRUCT Contiene informazioni passate a una routine hook WH_CBT, CBTProc, prima dell'attivazione di una finestra.
CWPRETSTRUCT Definisce i parametri del messaggio passati a una routine hook WH_CALLWNDPROCRET, CallWndRetProc.
CWPSTRUCT Definisce i parametri del messaggio passati a una routine hook WH_CALLWNDPROCCallWndProc.
DEBUGHOOKINFO Contiene informazioni di debug passate a una routine hook WH_DEBUG, DebugProc.
EVENTMSG Contiene informazioni su un messaggio hardware inviato alla coda dei messaggi di sistema. Questa struttura viene utilizzata per archiviare le informazioni sui messaggi per la JournalPlaybackProc funzione di callback.
KBDLLHOOKSTRUCT Contiene informazioni su un evento di input della tastiera di basso livello.
MOUSEHOOKSTRUCT Contiene informazioni su un evento del mouse passato a una routine hook WH_MOUSE, MouseProc.
MOUSEHOOKSTRUCTEX Contiene informazioni su un evento del mouse passato a una routine hook WH_MOUSE, MouseProc.
MSLLHOOKSTRUCT Contiene informazioni su un evento di input del mouse di basso livello.

SetWinEventHook