Share via


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 in lParam.

BITS 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 si tratta di una chiave estesa; in caso contrario, è 0.
25 "Non importa" bit. L'applicazione che chiama questa funzione imposta questo bit per indicare che la funzione non deve distinguere tra i tasti CTRL e DESTRA e MAIUSC, ad esempio.

Per altri dettagli, vedere Flag di messaggio di sequenza di tasti.

[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 alle dimensioni 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 informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Il formato della stringa key-name dipende dal layout della 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 della 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.

Questo metodo potrebbe non funzionare correttamente con alcuni layout di tastiera che producono più caratteri (ad esempio legature) e/o caratteri Unicode supplementari stampati su un singolo tasto. Inoltre, le chiavi mappate all'oggetto 'A'. I codici di chiave virtuale Z vengono convertiti in lettere maiuscole 'A'.' Caratteri Z indipendentemente dal layout corrente della tastiera. Usare i metodi ToUnicode o ToUnicodeEx in questi casi.

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 per i prototipi di funzioni.

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

Vedi anche

Input da tastiera

Layout della tastiera

Esempi di layout della tastiera

ToUnicode

ToUnicodeEx