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 .
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.
[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 |