Função LoadKeyboardLayoutA (winuser.h)
Carrega um novo identificador de localidade de entrada (anteriormente chamado de layout de teclado) no sistema.
Antes do Windows 8: Vários identificadores de localidade de entrada podem ser carregados por vez, mas apenas um por processo está ativo por vez. Carregar vários identificadores de localidade de entrada possibilita alternar rapidamente entre eles.
a partir do Windows 8: o identificador de localidade de entrada é carregado para todo o sistema. Essa função não terá efeito se o processo atual não tiver a janela com foco no teclado.
Sintaxe
HKL LoadKeyboardLayoutA(
[in] LPCSTR pwszKLID,
[in] UINT Flags
);
Parâmetros
[in] pwszKLID
Tipo: LPCTSTR
O nome do identificador de localidade de entrada a ser carregado. Esse nome é uma cadeia de caracteres composta pelo valor hexadecimal do de Identificador de Idioma (palavra baixa) e um identificador de dispositivo (palavra alta). Por exemplo, o inglês americano tem um identificador de idioma de 0x0409, portanto, o layout principal de inglês dos EUA é chamado de "00000409". Variantes do layout em inglês dos EUA (como o layout do Dvorak) são chamadas de "00010409", "00020409" e assim por diante.
Para obter uma lista dos layouts de entrada fornecidos com o Windows, consulte Identificadores de Teclado e Editores de Método de Entrada para Windows.
[in] Flags
Tipo: UINT
Especifica como o identificador de localidade de entrada deve ser carregado. Esse parâmetro pode ser um ou mais dos valores a seguir.
Valor | Significado |
---|---|
|
Antes do Windows 8: Se o identificador de localidade de entrada especificado ainda não estiver carregado, a função carregará e ativará o identificador de localidade de entrada para o thread atual.
a partir do Windows 8: Se o identificador de localidade de entrada especificado ainda não estiver carregado, a função carregará e ativará o identificador de localidade de entrada para o sistema. |
|
Anterior ao Windows 8: impede que um procedimento ShellProc hook receba um código de gancho de HSHELL_LANGUAGE quando o novo identificador de localidade de entrada é carregado. Esse valor normalmente é usado quando um aplicativo carrega vários identificadores de localidade de entrada um após o outro. Aplicar esse valor a todos, exceto ao último identificador de localidade de entrada, atrasa o processamento do shell até que todos os identificadores de localidade de entrada tenham sido adicionados.
a partir do Windows 8: Neste cenário, o último identificador de localidade de entrada é definido para todo o sistema. |
|
Antes do Windows 8: Move o identificador de localidade de entrada especificado para o cabeçalho da lista de identificadores de localidade de entrada, tornando esse identificador de localidade o identificador de localidade ativo para o thread atual. Esse valor reordena a lista de identificadores de localidade de entrada mesmo se KLF_ACTIVATE não for fornecido.
a partir do Windows 8: Move o identificador de localidade de entrada especificado para o cabeçalho da lista de identificadores de localidade de entrada, tornando esse identificador de localidade o identificador de localidade ativo para o sistema. Esse valor reordena a lista de identificadores de localidade de entrada mesmo se KLF_ACTIVATE não for fornecido. |
|
Se o novo identificador de localidade de entrada tiver o mesmo identificador de idioma que um identificador de localidade de entrada atual, o novo identificador de localidade de entrada substituirá o atual como o identificador de localidade de entrada para esse idioma. Se esse valor não for fornecido e os identificadores de localidade de entrada tiverem os mesmos identificadores de idioma, o identificador de localidade de entrada atual não será substituído e a função retornará NULL. |
|
Substitui o identificador de localidade de entrada especificado por outra localidade preferida pelo usuário. O sistema começa com esse conjunto de sinalizadores e é recomendável que seu aplicativo sempre use esse sinalizador. A substituição ocorrerá somente se a chave do Registro HKEY_CURRENT_USER\Keyboard Layout\Substitutes definir explicitamente uma localidade de substituição. Por exemplo, se a chave incluir o nome do valor "00000409" com o valor "00010409", carregar o layout dos EUA ("00000409") fará com que o layout do United States-Dvorak ("00010409") seja carregado. O sistema usa KLF_SUBSTITUTE_OK ao inicializar e é recomendável que todos os aplicativos usem esse valor ao carregar identificadores de localidade de entrada para garantir que a preferência do usuário esteja selecionada. |
|
Antes do Windows 8: Esse sinalizador é válido somente com KLF_ACTIVATE. Ativa o identificador de localidade de entrada especificado para todo o processo e envia a mensagem WM_INPUTLANGCHANGE para a janela Foco ou Ativo do thread atual. Normalmente, LoadKeyboardLayout ativa um identificador de localidade de entrada somente para o thread atual.
a partir do Windows 8: Esse sinalizador não é usado. LoadKeyboardLayout sempre ativa um identificador de localidade de entrada para todo o sistema se o processo atual possuir a janela com foco no teclado. |
|
Este sinalizador não tem suporte. Use a função UnloadKeyboardLayout em vez disso. |
Valor de retorno
Tipo: HKL
Se a função for bem-sucedida, o valor retornado será o identificador de localidade de entrada correspondente ao nome especificado em pwszKLID. Se nenhuma localidade correspondente estiver disponível, o valor retornado será o idioma padrão do sistema.
Se a função falhar, o valor retornado será NULL. Isso pode ocorrer se a biblioteca de layout for carregada do diretório do aplicativo.
Para obter informações de erro estendidas, chame GetLastError.
Observações
O identificador de localidade de entrada é um conceito mais amplo do que um layout de teclado, pois também pode abranger um conversor de fala em texto, um IME (Editor de Método de Entrada) ou qualquer outra forma de entrada.
Um aplicativo pode e normalmente carregará o identificador de localidade de entrada padrão ou o IME para um idioma e pode fazê-lo especificando apenas uma versão de cadeia de caracteres do identificador de idioma. Se um aplicativo quiser carregar uma localidade específica ou IME, ele deverá ler o registro para determinar o identificador de localidade de entrada específico a ser passado para LoadKeyboardLayout. Nesse caso, uma solicitação para ativar o identificador de localidade de entrada padrão para uma localidade ativará a primeira correspondência. Um IME específico deve ser ativado usando um identificador de localidade de entrada explícito retornado de GetKeyboardLayout ou LoadKeyboardLayout.
Antes do Windows 8: Essa função afeta apenas o layout do processo ou thread atual.
a partir do Windows 8: Essa função afeta o layout de todo o sistema.
Nota
O cabeçalho winuser.h define LoadKeyboardLayout como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | winuser.h (inclua Windows.h) |
biblioteca | User32.lib |
de DLL |
User32.dll |
Consulte também
ActivateKeyboardLayout
Conceitual
GetKeyboardLayoutName
de entrada do teclado
outros recursos
de referência de
UnloadKeyboardLayout