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