Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: xevuel
Biblioteki C/C++

LoadKeyboardLayout

[funkcja] Ładuje nowy lokalny identyfikator układu wejścia do systemu.

Składnia

C/C++
#include <windows.h>

HKL WINAPI LoadKeyboardLayout(
LPCTSTR pwszKLID,
UINT Flags
);

Argumenty

ArgumentOpis
pwszKLIDNazwa identyfikatora języka. Ten argument składa się z dwóch części: identyfikatora języka (np. dla j. polskiego jest to 0x0415) i identyfikatora urządzenia.
FlagsOkreśla, w jaki sposób identyfikator ma być załadowany. Ten argument może przyjąć jedną z następujących wartości:

  • KLF_ACTIVATE (0x00000001)
    Jeśli określony identyfikator nie jest jeszcze załadowany, funkcja załaduje i aktywuje go dla bieżącego wątku.

  • KLF_NOTELLSHELL (0x00000080)
    Zapobiega otrzymaniu komunikatu HSHELL_LANGUAGE przez procedurę hakową, podczas gdy nowy identyfikator wejścia jest ładowany. Wartość ta jest używana zazwyczaj gdy aplikacja ładuje wiele identyfikatorów jeden po drugim. Użycie tej wartości spowoduje opóźnienie przetwarzania powłoki, aż wszystkie identyfikatory ustawień regionalnych zostaną dodane.

  • KLF_REORDER (0x00000008)
    Przenosi podany identyfikator do nagłówka listy identyfikatorów, i ustawia go jako aktywny dla aktualnego wątku. Użycie tej wartości spowoduje ponowne ustawienie tejże listy, nawet jeśli nie użyto flagi KLF_ACTIVATE.

  • KLF_REPLACELANG (0x00000010)
    Jeżeli identyfikator podany w argumencie hkl zawiera ten sam język, co bieżący identyfikator, zastąpi on identyfikator aktualny.  Jeśli ta flaga nie zostanie użyta, w przypadku wystąpienia takiego zdarzenia aktualny identyfikator nie zostanie zastąpiony, a funkcja zwróci wartość NULL.

  • KLF_SUBSTITUTE_OK (0x00000002)
    Zamienia określony identyfikator na inny, preferowany przez użytkownika. Zmiana zachodzi tylko wtedy, gdy klucz rejestru HKEY_CURRENT_USER\Keyboard Layout\Substitutes wyraźnie definiuje identyfikator. Przykładowo, jeżeli klucz ten zawiera wartość o nazwie "00000409" z wartością "00010409", spowoduje, że zamiast angielskiego układu klawiatury ("00000409") zostanie załadowany układ Dvoraka ("00010409"). Używanie tej flagi jest zalecane.

  • KLF_SETFORPROCESS (0x00000100)
    Ta flaga działa poprawnie tylko z KLF_ACTIVATE. Po aktywowaniu identyfikatora wysyła komunikat WM_INPUTLANGCHANGE do bieżącego wątku. Zazwyczaj LoadKeyboardLayout aktywuje dany identyfikator tylko dla bieżącego wątku.

  • KLF_UNLOADPREVIOUS
    Ta wartość jest nieobsługiwana. Użyj funkcji » WinAPIUnloadKeyboardLayout.

Zwracana wartość

Jeśli wywołanie funkcji powiedzie się, zwróci ona określony identyfikator układu wejścia. Jeśli nie jest on dostępny, zwróconą wartością będzie NULL. Aby uzyskać szczegółowe informacje o błędzie, użyj » WinAPIGetLastError.

Opis szczegółowy

Funkcja LoadKeyboardLayout ładuje nowy lokalny identyfikator układu wejścia do systemu. Ma ona wpływ tylko na układ dla bieżącego procesu lub wątku.

Identyfikator wejścia jest pojęciem szerszym niż układ klawiatury, ponieważ może on obejmować również konwerter speech-to-text, edytor IME, lub inne formy wejścia.

Aplikacja może załadować domyślny identyfikator i może to zrobić poprzez podanie jedynie wersji identyfikatora języka. Jeśli aplikacja chce załadować konkretny IME, powinna zapoznać się z rejestrem w celu jego ustalenia. W tym przypadku zapytanie odnośnie aktywowania domyślnego identyfikatora aktywuje pierwszy do niego pasujący. Specyficzny IME powinien być aktywowany za pomocą jawnego identyfikatora uzyskanego za pomocą funkcji GetKeyboardLayout lub LoadKeyboardLayout.

Wymagania

Minimalny obsługiwany klientWindows 2000 Professional
Minimalny obsługiwany serwerWindows 2000 Server
NagłówekWinuser.h (wewnątrz Windows.h)
BibliotekaUser32.lib
DLLUser32.dll
Nazwy Unicode i ANSILoadKeyboardLayoutW (Unicode) i LoadKeyboardLayoutA (ANSI)

Przykład

C/C++
HKL hKl = LoadKeyboardLayout( "00000415", KLF_ACTIVATE ); //00000415 to identyfikator j. polskiego

Zagadnienia powiązane

ActivateKeyboardLayoutUstawia lokalny identyfikator układu wejścia dla wywołującego wątku lub aktualnego procesu. (funkcja)
UnloadKeyboardLayoutZwalnia podany identyfikator układu wejścia. (funkcja)

Linki zewnętrzne