Funzione GetKeyboardState (winuser.h)
Copia lo stato delle chiavi virtuali 256 nel buffer specificato.
Sintassi
BOOL GetKeyboardState(
[out] PBYTE lpKeyState
);
Parametri
[out] lpKeyState
Tipo: PBYTE
Matrice di 256 byte che riceve i dati di stato per ogni chiave virtuale.
Valore restituito
Tipo: BOOL
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Un'applicazione può chiamare questa funzione per recuperare lo stato corrente di tutte le chiavi virtuali. Lo stato cambia come thread rimuove i messaggi da tastiera dalla coda dei messaggi. Lo stato non cambia perché i messaggi della tastiera vengono pubblicati nella coda dei messaggi del thread, né cambiano quando i messaggi della tastiera vengono pubblicati o recuperati dalle code di messaggi di altri thread. Eccezione: i thread connessi tramite AttachThreadInput condividono lo stesso stato della tastiera.
Quando la funzione restituisce, ogni membro della matrice a cui punta il parametro lpKeyState contiene i dati di stato per una chiave virtuale. Se il bit ad ordine elevato è 1, la chiave è inattiva; in caso contrario, è in alto. Se la chiave è una chiave attiva, ad esempio CAPS LOCK, il bit a basso ordine è 1 quando la chiave viene disattivata ed è 0 se la chiave viene annullata. Il bit a basso ordine è senza significato per le chiavi non attivate. Si dice che un interruttore venga disattivato quando viene attivato. Quando il tasto viene disattivato, la luce dell'indicatore del tasto (se presente) sulla tastiera verrà attivata quando il tasto viene disattivato e disattivato quando il tasto viene disattivato.
Per recuperare le informazioni sullo stato per una singola chiave, usare la funzione GetKeyState . Per recuperare lo stato corrente per un singolo tasto indipendentemente dal fatto che il messaggio di tastiera corrispondente sia stato recuperato dalla coda del messaggio, usare la funzione GetAsyncKeyState .
Un'applicazione può usare le costanti di codice della chiave virtuale VK_SHIFT, VK_CONTROL e VK_MENU come indici nella matrice a cui punta lpKeyState. In questo modo viene fornito lo stato dei tasti MAIUSC, CTRL o ALT senza distinguere tra sinistra e destra. Un'applicazione può anche usare le costanti di codice di chiave virtuale seguenti come indici per distinguere tra le istanze a sinistra e destra di tali chiavi:
VK_LSHIFT |
VK_RSHIFT |
VK_LCONTROL |
VK_RCONTROL |
VK_LMENU |
VK_RMENU |
Queste costanti a sinistra e a destra sono disponibili solo per un'applicazione tramite le funzioni GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, GetKeyState e MapVirtualKey.
Requisiti
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 |
Set di API | ext-ms-win-ntuser-rawinput-l1-1-0 (introdotta in Windows 10, versione 10.0.14393) |