Condividi tramite


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)

Vedi anche