Funzione GetKeyNameTextA (winuser.h)

Recupera una stringa che rappresenta il nome di una chiave.

Sintassi

int GetKeyNameTextA(
  [in]  LONG  lParam,
  [out] LPSTR lpString,
  [in]  int   cchSize
);

Parametri

[in] lParam

Tipo: LONG

Secondo parametro del messaggio della tastiera ( ad esempio WM_KEYDOWN) da elaborare. La funzione interpreta le posizioni di bit seguenti nel lParam.

Bit Significato
16-23 Codice di analisi. Il valore dipende dall'OEM.
24 Indica se il tasto è un tasto esteso, ad esempio i tasti ALT e CTRL di destra visualizzati su una tastiera avanzata da 101 o 102 tasti. Il valore è 1 se è una chiave estesa; in caso contrario, è 0.
25 "Non importare" bit. L'applicazione che chiama questa funzione imposta questo bit per indicare che la funzione non deve distinguere tra i tasti CTRL sinistro e destro e MAIUSC, ad esempio.

Per altri dettagli, vedere flag di messaggio .

[out] lpString

Tipo: LPTSTR

Buffer che riceverà il nome della chiave.

[in] cchSize

Tipo: int

Lunghezza massima, in caratteri, del nome della chiave, incluso il carattere Null di terminazione. Questo parametro deve essere uguale alla dimensione del buffer a cui punta il parametro lpString.

Valore restituito

Tipo: int

Se la funzione ha esito positivo, una stringa con terminazione Null viene copiata nel buffer specificato e il valore restituito è la lunghezza della stringa, in caratteri, senza contare il carattere Null di terminazione.

Se la funzione ha esito negativo, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

Il formato della stringa key-name dipende dal layout di tastiera corrente.

Il layout della tastiera mantiene un elenco di nomi sotto forma di stringhe di caratteri per i tasti con nomi più lunghi di un singolo carattere. Il nome del tasto viene convertito in base al layout di tastiera attualmente attivo, pertanto la funzione potrebbe restituire risultati diversi per layout di tastiera diversi .

Il nome di una chiave di carattere è il carattere stesso. I nomi delle chiavi non recapitabili vengono specificati completamente.

Tasti di carattere di cui è stato eseguito il mapping a 'A'.' I codici di chiave virtuale Z vengono convertiti nella U+0041 LETTERA MAIUSCOLA LATINA A..U+005A LETTERA MAIUSCOLA LATINA Z caratteri indipendentemente dal layout di tastiera corrente. In questo caso, usare i metodi ToUnicode o ToUnicodeEx per ottenere il carattere per il tasto corrispondente.

Questo metodo potrebbe non funzionare correttamente con alcuni layout di tastiera che producono più caratteri (ad esempio legature) o caratteri Unicode supplementari su un singolo tasto.

L'intestazione winuser.h definisce GetKeyNameText come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione winuser.h (include Windows.h)
libreria User32.lib
dll User32.dll

Vedere anche

input da tastiera

layout di tastiera

esempi di layout della tastiera

ToUnicode

ToUnicodeEx