Compartilhar via


função keybd_event (winuser.h)

Sintetiza um pressionamento de tecla. O sistema pode usar esse pressionamento de tecla sintetizado para gerar uma mensagem WM_KEYUP ou WM_KEYDOWN. O manipulador de interrupção do driver de teclado chama a função keybd_event.

Nota Essa função foi substituída. Em vez disso, use SendInput.
 

Sintaxe

void keybd_event(
  [in] BYTE      bVk,
  [in] BYTE      bScan,
  [in] DWORD     dwFlags,
  [in] ULONG_PTR dwExtraInfo
);

Parâmetros

[in] bVk

Tipo: BYTE

Um código de chave virtual. O código deve ser um valor no intervalo de 1 a 254. Para obter uma lista completa, consulte Códigos de chave virtual.

[in] bScan

Tipo: BYTE

Um código de verificação de hardware para a chave.

[in] dwFlags

Tipo: DWORD

Controla vários aspectos da operação de função. Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
KEYEVENTF_EXTENDEDKEY
0x0001
Se especificado, o código de verificação foi precedido por um byte de prefixo com o valor 0xE0 (224).
KEYEVENTF_KEYUP
0x0002
Se especificado, a chave está sendo liberada. Se não for especificado, a chave está sendo pressionada.

[in] dwExtraInfo

Tipo: ULONG_PTR

Um valor adicional associado ao traço da chave.

Retornar valor

Nenhum

Comentários

Um aplicativo pode simular uma pressionamento da tecla PRINTSCRN para obter uma tela instantâneo e salvá-la na área de transferência. Para fazer isso, chame keybd_event com o parâmetro bVk definido como VK_SNAPSHOT.

Exemplos

O programa de exemplo a seguir alterna a luz NUM LOCK usando keybd_event com uma chave virtual de VK_NUMLOCK. Ele usa um valor booliano que indica se a luz deve ser desativada (FALSE) ou ativada (TRUE). A mesma técnica pode ser usada para a tecla CAPS LOCK (VK_CAPITAL) e a tecla SCROLL LOCK (VK_SCROLL).


   #include <windows.h>

   void SetNumLock( BOOL bState )
   {
      BYTE keyState[256];

      GetKeyboardState((LPBYTE)&keyState);
      if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
          (!bState && (keyState[VK_NUMLOCK] & 1)) )
      {
      // Simulate a key press
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | 0,
                      0 );

      // Simulate a key release
         keybd_event( VK_NUMLOCK,
                      0x45,
                      KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                      0);
      }
   }

   void main()
   {
      SetNumLock( TRUE );
   }

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 (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll

Confira também