Funzione LoadKeyboardLayoutA (winuser.h)

Carica un nuovo identificatore delle impostazioni locali di input (in precedenza denominato layout della tastiera) nel sistema.

Prima di Windows 8: è possibile caricare diversi identificatori delle impostazioni locali di input alla volta, ma solo uno per processo è attivo alla volta. Il caricamento di più identificatori delle impostazioni locali di input consente di passare rapidamente tra di essi.

A partire da Windows 8: l'identificatore delle impostazioni locali di input viene caricato per l'intero sistema. Questa funzione non ha alcun effetto se il processo corrente non possiede la finestra con lo stato attivo della tastiera.

Sintassi

HKL LoadKeyboardLayoutA(
  [in] LPCSTR pwszKLID,
  [in] UINT   Flags
);

Parametri

[in] pwszKLID

Tipo: LPCTSTR

Nome dell'identificatore delle impostazioni locali di input da caricare. Questo nome è una stringa composta dal valore esadecimale dell'identificatore del linguaggio (parola bassa) e un identificatore del dispositivo (parola alta). Ad esempio, l'inglese statunitense ha un identificatore di lingua di 0x0409, quindi il layout inglese primario degli Stati Uniti è denominato "00000409". Le varianti del layout inglese statunitense (ad esempio il layout Dvorak) sono denominate "00010409", "00020409" e così via.

Per un elenco dei layout di input forniti con Windows, vedere Identificatori di tastiera e Editor di metodi di input per Windows.

[in] Flags

Tipo: UINT

Specifica il modo in cui l'identificatore delle impostazioni locali di input deve essere caricato. Questo parametro può essere uno o più dei valori seguenti.

Valore Significato
KLF_ACTIVATE
0x00000001
Prima di Windows 8: se l'identificatore delle impostazioni locali di input specificato non è già caricato, la funzione carica e attiva l'identificatore delle impostazioni locali di input per il thread corrente.

A partire da Windows 8: se l'identificatore delle impostazioni locali di input specificato non è già caricato, la funzione carica e attiva l'identificatore delle impostazioni locali di input per il sistema.

KLF_NOTELLSHELL
0x00000080
Prima di Windows 8: impedisce che una routine di hook ShellProc riceva un codice di hook HSHELL_LANGUAGE quando viene caricato il nuovo identificatore delle impostazioni locali di input. Questo valore viene in genere usato quando un'applicazione carica più identificatori delle impostazioni locali di input una dopo l'altra. L'applicazione di questo valore a tutti, ma l'ultimo identificatore delle impostazioni locali di input ritarda l'elaborazione della shell fino a quando non sono stati aggiunti tutti gli identificatori delle impostazioni locali di input.

A partire da Windows 8: in questo scenario l'ultimo identificatore delle impostazioni locali di input è impostato per l'intero sistema.

KLF_REORDER
0x00000008
Prima di Windows 8: sposta l'identificatore delle impostazioni locali di input specificato nell'intestazione dell'elenco degli identificatori delle impostazioni locali di input, rendendo tale identificatore delle impostazioni locali attive per il thread corrente. Questo valore riordina l'elenco degli identificatori delle impostazioni locali di input anche se KLF_ACTIVATE non viene fornito.

A partire da Windows 8: sposta l'identificatore delle impostazioni locali di input specificato nella testa dell'elenco degli identificatori delle impostazioni locali di input, rendendo tale identificatore delle impostazioni locali attive per il sistema. Questo valore riordina l'elenco degli identificatori delle impostazioni locali di input anche se KLF_ACTIVATE non viene fornito.

KLF_REPLACELANG
0x00000010
Se il nuovo identificatore delle impostazioni locali di input ha lo stesso identificatore di lingua di un identificatore delle impostazioni locali di input corrente, il nuovo identificatore delle impostazioni locali di input sostituisce quello corrente come identificatore delle impostazioni locali di input per tale lingua. Se questo valore non viene specificato e gli identificatori delle impostazioni locali di input hanno gli stessi identificatori di lingua, l'identificatore delle impostazioni locali di input corrente non viene sostituito e la funzione restituisce NULL.
KLF_SUBSTITUTE_OK
0x00000002
Sostituisce l'identificatore delle impostazioni locali di input specificato con un'altra impostazione locale preferita dall'utente. Il sistema inizia con questo set di flag e è consigliabile che l'applicazione usi sempre questo flag. La sostituzione si verifica solo se la chiave del Registro di sistema HKEY_CURRENT_USER\Keyboard Layout\Substitutes definisce in modo esplicito le impostazioni locali di sostituzione. Ad esempio, se la chiave include il nome del valore "00000409" con il valore "00010409", il caricamento del layout statunitense ("00000409") causa il caricamento del layout di United States-Dvorak ("00010409"). Il sistema usa KLF_SUBSTITUTE_OK durante l'avvio e è consigliabile che tutte le applicazioni usino questo valore durante il caricamento degli identificatori delle impostazioni locali di input per assicurarsi che sia selezionata la preferenza dell'utente.
KLF_SETFORPROCESS
0x00000100
Prima di Windows 8: questo flag è valido solo con KLF_ACTIVATE. Attiva l'identificatore delle impostazioni locali di input specificato per l'intero processo e invia il messaggio WM_INPUTLANGCHANGE alla finestra Messa a fuoco o Attivo del thread corrente. In genere , LoadKeyboardLayout attiva un identificatore delle impostazioni locali di input solo per il thread corrente.

A partire da Windows 8: questo flag non viene usato. LoadKeyboardLayout attiva sempre un identificatore delle impostazioni locali di input per l'intero sistema se il processo corrente possiede la finestra con lo stato attivo della tastiera.

KLF_UNLOADPREVIOUS
Questo flag non è supportato. Usare invece la funzione UnloadKeyboardLayout .

Valore restituito

Tipo: HKL

Se la funzione ha esito positivo, il valore restituito è l'identificatore delle impostazioni locali di input corrispondente al nome specificato in pwszKLID. Se non sono disponibili impostazioni locali corrispondenti, il valore restituito è la lingua predefinita del sistema.

Se la funzione ha esito negativo, il valore restituito è NULL. Ciò può verificarsi se la libreria di layout viene caricata dalla directory dell'applicazione.

Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

L'identificatore delle impostazioni locali di input è un concetto più ampio di un layout della tastiera, poiché può anche includere un convertitore voce-a-testo, un metodo di input Editor (IME) o qualsiasi altra forma di input.

Un'applicazione può e carica in genere l'identificatore delle impostazioni locali di input predefinito o IME per una lingua e può farlo specificando solo una versione stringa dell'identificatore della lingua. Se un'applicazione vuole caricare impostazioni locali o IME specifiche, deve leggere il Registro di sistema per determinare l'identificatore delle impostazioni locali di input specifico da passare a LoadKeyboardLayout. In questo caso, una richiesta per attivare l'identificatore delle impostazioni locali di input predefinito per le impostazioni locali attiverà la prima corrispondenza. Un IME specifico deve essere attivato usando un identificatore delle impostazioni locali di input esplicito restituito da GetKeyboardLayout o LoadKeyboardLayout.

Prima di Windows 8: questa funzione influisce solo sul layout per il processo o il thread corrente.

A partire da Windows 8: questa funzione influisce sul layout per l'intero sistema.

Nota

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

Requisiti

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

ActivateKeyboardLayout

Informazioni concettuali

GetKeyboardLayoutName

Input della tastiera

MAKELANGID

Altre risorse

Riferimento

UnloadKeyboardLayout