Condividi tramite


Funzione LoadKeyboardLayoutW (winuser.h)

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

Precedente a Windows 8: è possibile caricare più 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 spostarsi 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 è proprietario della finestra con lo stato attivo della tastiera.

Sintassi

HKL LoadKeyboardLayoutW(
  [in] LPCWSTR 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 di lingua (parola bassa) e un identificatore di dispositivo (parola alta). Ad esempio, l'inglese degli Stati Uniti ha un identificatore di lingua 0x0409, quindi il layout inglese primario degli Stati Uniti è denominato "00000409". Le varianti del layout inglese (ad esempio il layout Dvorak) sono denominate "00010409", "00020409" e così via.

Per un elenco dei layout di input forniti con Windows, vedi identificatori di tastiera e editor di metodi di input per Windows.

[in] Flags

Tipo: UINT

Specifica la modalità di caricamento dell'identificatore delle impostazioni locali di input. Questo parametro può essere uno dei valori seguenti.

Valore Significato
KLF_ACTIVATE
0x00000001
Precedente a Windows 8: Se l'identificatore delle impostazioni locali di input specificato non è già stato 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à stato caricato, la funzione carica e attiva l'identificatore delle impostazioni locali di input per il sistema.

KLF_NOTELLSHELL
0x00000080
prima di Windows 8: Impedisce a una shellProc routine hook di ricevere un codice 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 uno dopo l'altro. L'applicazione di questo valore a tutti gli identificatori delle impostazioni locali di input, ma l'ultimo identificatore delle impostazioni locali di input ritarda l'elaborazione della shell fino a quando non vengono 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 di identificatori delle impostazioni locali di input, rendendo tale identificatore delle impostazioni locali l'identificatore delle impostazioni locali attivo per il thread corrente. Questo valore riordina l'elenco di identificatori delle impostazioni locali di input anche se non viene specificato KLF_ACTIVATE.

A partire da Windows 8: Sposta l'identificatore delle impostazioni locali di input specificato nell'intestazione dell'elenco di identificatori delle impostazioni locali di input, rendendo tale identificatore delle impostazioni locali l'identificatore delle impostazioni locali attivo per il sistema. Questo valore riordina l'elenco di identificatori delle impostazioni locali di input anche se non viene specificato KLF_ACTIVATE.

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 flag impostato ed è 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 di valore "00000409" con valore "00010409", il caricamento del layout degli Stati Uniti ("00000409") determina il caricamento del layout di United States-Dvorak ("00010409"). Il sistema usa KLF_SUBSTITUTE_OK durante l'avvio ed è 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
Precedente a 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 di WM_INPUTLANGCHANGE alla finestra Messa a fuoco o attiva 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 è proprietario della 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. Questo problema può verificarsi se la libreria di layout viene caricata dalla directory dell'applicazione.

Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

L'identificatore delle impostazioni locali di input è un concetto più ampio rispetto a un layout di tastiera, poiché può includere anche un convertitore di riconoscimento vocale, un IME (Input Method Editor) o qualsiasi altra forma di input.

Un'applicazione può e in genere caricherà l'identificatore delle impostazioni locali di input predefinito o IME per una lingua e può farlo specificando solo una versione stringa dell'identificatore di 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 di 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.

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

Vedere anche

ActivateKeyboardLayout

concettuale

GetKeyboardLayoutName

input da tastiera

MAKELANGID

altre risorse

riferimento

UnloadKeyboardLayout