Função BlockInput (winuser.h)

Impede que eventos de entrada de teclado e do mouse cheguem aos aplicativos.

Sintaxe

BOOL BlockInput(
  [in] BOOL fBlockIt
);

Parâmetros

[in] fBlockIt

Tipo: BOOL

A finalidade da função. Se esse parâmetro for TRUE, os eventos de entrada de teclado e mouse serão bloqueados. Se esse parâmetro for FALSE, os eventos de teclado e mouse serão desbloqueados. Observe que somente o thread que bloqueou a entrada pode desbloquear com êxito a entrada.

Retornar valor

Tipo: BOOL

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a entrada já estiver bloqueada, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.

Comentários

Quando a entrada é bloqueada, a entrada física real do mouse ou do teclado não afetará o estado de chave síncrona da fila de entrada (relatado por GetKeyState e GetKeyboardState), nem afetará o estado de chave assíncrona (relatado por GetAsyncKeyState). No entanto, o thread que está bloqueando a entrada pode afetar ambos os estados-chave chamando SendInput. Nenhum outro thread pode fazer isso.

O sistema desbloqueará a entrada nos seguintes casos:

  • O thread que bloqueou a entrada sai inesperadamente sem chamar BlockInput com fBlock definido como FALSE. Nesse caso, o sistema limpa corretamente e reabilita a entrada.
  • O usuário pressiona CTRL+ALT+DEL ou o sistema invoca a caixa de mensagem modal Erro do Sistema Rígido (por exemplo, quando um programa falha ou um dispositivo falha).

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h
Biblioteca User32.lib
DLL User32.dll

Confira também

Conceitual

GetAsyncKeyState

GetKeyState

GetKeyboardState

Entrada por teclado

Referência

SendInput