Partilhar via


Ganchos

Um gancho é um ponto no mecanismo de manipulação de mensagens do sistema onde um aplicativo pode instalar uma sub-rotina para monitorar o tráfego de mensagens no sistema e processar certos tipos de mensagens antes que elas cheguem ao procedimento da janela de destino.

Nesta secção

Designação Descrição
Visão geral do gancho Discute como os ganchos devem ser usados.
Usando ganchos Demonstra como executar tarefas associadas a ganchos.
de referência de gancho Contém a referência da API.

Funções de gancho

Designação Descrição
CallMsgFilter Passa a mensagem especificada e o código de gancho para os procedimentos de gancho associados aos procedimentos de gancho de WH_SYSMSGFILTER e WH_MSGFILTER.
CallNextHookEx Passa as informações do gancho para o próximo procedimento de gancho na cadeia de gancho atual. Um procedimento de gancho pode chamar essa função antes ou depois de processar as informações do gancho.
CallWndProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função antes de chamar o procedimento de janela para processar uma mensagem enviada para o thread.
CallWndRetProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função depois que a funçãoSendMessage é chamada. O procedimento de gancho pode examinar a mensagem; não pode modificá-lo.
CBTProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função antes de ativar, criar, destruir, minimizar, maximizar, mover ou dimensionar uma janela; antes de completar um comando do sistema; antes de remover um evento de mouse ou teclado da fila de mensagens do sistema; antes de definir o foco do teclado; ou antes de sincronizar com a fila de mensagens do sistema. Um aplicativo de treinamento baseado em computador (CBT) usa esse procedimento de gancho para receber notificações úteis do sistema.
DebugProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função antes de chamar os procedimentos de gancho associados a qualquer tipo de gancho. O sistema passa informações sobre o gancho a ser chamado para o procedimento de gancho de DebugProc, que examina as informações e determina se deve permitir que o gancho seja chamado.
ForegroundIdleProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função sempre que o segmento de primeiro plano está prestes a ficar ocioso.
GetMsgProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função sempre que a função GetMessage ou PeekMessage tiver recuperado uma mensagem de uma fila de mensagens do aplicativo. Antes de retornar a mensagem recuperada para o chamador, o sistema passa a mensagem para o procedimento de gancho.
JournalPlaybackProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. Normalmente, um aplicativo usa essa função para reproduzir uma série de mensagens de mouse e teclado gravadas anteriormente pelo JournalRecordProc procedimento de gancho. Contanto que um procedimento de gancho de JournalPlaybackProc esteja instalado, a entrada regular de mouse e teclado será desativada.
JournalRecordProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. A função registra mensagens que o sistema remove da fila de mensagens do sistema. Mais tarde, um aplicativo pode usar um JournalPlaybackProc procedimento de gancho para reproduzir as mensagens.
KeyboardProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função sempre que um aplicativo chama o GetMessage ou função PeekMessage e há uma mensagem de teclado (WM_KEYUP ou WM_KEYDOWN) a ser processada.
LowLevelKeyboardProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função toda vez que um novo evento de entrada de teclado está prestes a ser postado em uma fila de entrada de thread.
LowLevelMouseProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função toda vez que um novo evento de entrada do mouse está prestes a ser postado em uma fila de entrada de thread.
MessageProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função depois que um evento de entrada ocorre em uma caixa de diálogo, caixa de mensagem, menu ou barra de rolagem, mas antes que a mensagem gerada pelo evento de entrada seja processada. O procedimento hook pode monitorar mensagens para uma caixa de diálogo, caixa de mensagem, menu ou barra de rolagem criada por um aplicativo específico ou todos os aplicativos.
MouseProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função sempre que um aplicativo chama o GetMessage ou função PeekMessage e há uma mensagem do mouse a ser processada.
SetWindowsHookEx Instala um procedimento de gancho definido pelo aplicativo em uma cadeia de gancho. Você instalaria um procedimento de gancho para monitorar o sistema para certos tipos de eventos. Esses eventos são associados a um thread específico ou a todos os threads na mesma área de trabalho que o thread de chamada.
ShellProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. A função recebe notificações de eventos do Shell do sistema.
SysMsgProc Uma função de retorno de chamada definida pelo aplicativo ou pela biblioteca usada com a funçãoSetWindowsHookEx. O sistema chama essa função depois que um evento de entrada ocorre em uma caixa de diálogo, caixa de mensagem, menu ou barra de rolagem, mas antes que a mensagem gerada pelo evento de entrada seja processada. A função pode monitorar mensagens para qualquer caixa de diálogo, caixa de mensagem, menu ou barra de rolagem no sistema.
UnhookWindowsHookEx Remove um procedimento de gancho instalado em uma cadeia de gancho pela funçãoSetWindowsHookEx.

Notificações de gancho

Designação Descrição
WM_CANCELJOURNAL Postado em um aplicativo quando um usuário cancela as atividades de registro no diário do aplicativo. A mensagem é postada com um identificador de janela de NULL.
WM_QUEUESYNC Enviado por um aplicativo CBT para separar mensagens de entrada do usuário de outras mensagens enviadas através do procedimento WH_JOURNALPLAYBACK.

Estruturas de gancho

Designação Descrição
CBT_CREATEWND Contém informações passadas para um procedimento de gancho WH_CBT, CBTProc, antes de uma janela ser criada.
CBTACTIVATESTRUCT Contém informações passadas para um procedimento de gancho WH_CBT, CBTProc, antes que uma janela seja ativada.
CWPRETSTRUCT Define os parâmetros de mensagem passados para um procedimento de gancho de WH_CALLWNDPROCRET, CallWndRetProc.
CWPSTRUCT Define os parâmetros de mensagem passados para um procedimento de gancho de WH_CALLWNDPROC, CallWndProc.
DEBUGHOOKINFO Contém informações de depuração passadas para um procedimento de gancho de WH_DEBUG, DebugProc.
EVENTMSG Contém informações sobre uma mensagem de hardware enviada para a fila de mensagens do sistema. Essa estrutura é usada para armazenar informações de mensagem para o JournalPlaybackProc função de retorno de chamada.
KBDLLHOOKSTRUCT Contém informações sobre um evento de entrada de teclado de baixo nível.
MOUSEHOOKSTRUCT Contém informações sobre um evento de mouse passado para um procedimento de gancho de WH_MOUSE, MouseProc.
MOUSEHOOKSTRUCTEX Contém informações sobre um evento de mouse passado para um procedimento de gancho de WH_MOUSE, MouseProc.
MSLLHOOKSTRUCT Contém informações sobre um evento de entrada de mouse de baixo nível.

SetWinEventHook