Share via


funzione keybd_event (winuser.h)

Sintetizza una sequenza di tasti. Il sistema può usare tale sequenza di tasti sintetizzati per generare un WM_KEYUP o WM_KEYDOWN messaggio. Il gestore di interruzione del driver della tastiera chiama la funzione keybd_event .

Nota Questa funzione è stata sostituita. Usare invece SendInput .
 

Sintassi

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

Parametri

[in] bVk

Tipo: BYTE

Codice di chiave virtuale. Il codice deve essere un valore nell'intervallo da 1 a 254. Per un elenco completo, vedere Codici chiave virtuale.

[in] bScan

Tipo: BYTE

Codice di analisi hardware per la chiave.

[in] dwFlags

Tipo: DWORD

Controlla vari aspetti dell'operazione di funzione. Questo parametro può essere uno o più dei valori seguenti.

Valore Significato
KEYEVENTF_EXTENDEDKEY
0x0001
Se specificato, il codice di analisi è stato preceduto da un prefisso con il valore 0xE0 (224).
KEYEVENTF_KEYUP
0x0002
Se specificato, la chiave viene rilasciata. Se non specificato, la chiave viene depressa.

[in] dwExtraInfo

Tipo: ULONG_PTR

Valore aggiuntivo associato al tratto di chiave.

Valore restituito

nessuno

Osservazioni

Un'applicazione può simulare una pressione del tasto PRINTSCRN per ottenere uno snapshot dello schermo e salvarla negli Appunti. A tale scopo, chiamare keybd_event con il parametro bVk impostato su VK_SNAPSHOT.

Esempio

Il programma di esempio seguente attiva la luce NUM LOCK usando keybd_event con una chiave virtuale di VK_NUMLOCK. Accetta un valore booleano che indica se la luce deve essere disattivata (FALSE) o attiva (TRUE). La stessa tecnica può essere usata per il tasto BLOCCO CAPS (VK_CAPITAL) e il tasto 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 );
   }

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll

Vedi anche