Freigeben über


LoadKeyboardLayoutA-Funktion (winuser.h)

Lädt einen neuen Eingabegebietsschemabezeichner (früher als Tastaturlayout bezeichnet) in das System.

Vor Windows 8: Mehrere Eingabegebietsschema-IDs können gleichzeitig geladen werden, aber jeweils ist nur ein Einzelner pro Prozess aktiv. Das Laden mehrerer Eingabegebietsschema-IDs ermöglicht es, schnell zwischen diesen zu wechseln.

Ab Windows 8: Der Eingabegebietsschemabezeichner wird für das gesamte System geladen. Diese Funktion hat keine Auswirkung, wenn der aktuelle Prozess das Fenster nicht mit Tastaturfokus besitzt.

Syntax

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

Parameter

[in] pwszKLID

Typ: LPCTSTR-

Der Name des zu ladenden Eingabegebietsschemabezeichners. Dieser Name ist eine Zeichenfolge, die aus dem Hexadezimalwert des Sprachbezeichners (niedriges Wort) und einem Gerätebezeichner (Hochwort) besteht. Beispielsweise verfügt DEUTSCH über einen Sprachbezeichner von 0x0409, sodass das primäre US-Englische Layout "00000409" heißt. Varianten des us-englischen Layouts (z. B. das Dvorak-Layout) heißen "00010409", "00020409" usw.

Eine Liste der Eingabelayouts, die mit Windows bereitgestellt werden, finden Sie unter Tastatur-IDs und Eingabemethoden-Editoren für Windows.

[in] Flags

Typ: UINT-

Gibt an, wie der Eingabegebietsschemabezeichner geladen werden soll. Dieser Parameter kann einen oder mehrere der folgenden Werte sein.

Wert Bedeutung
KLF_ACTIVATE
0x00000001
Vor Windows 8: Wenn der angegebene Eingabegebietsschemabezeichner noch nicht geladen ist, lädt und aktiviert die Funktion den Eingabegebietsschemabezeichner für den aktuellen Thread.

Ab Windows 8: Wenn der angegebene Eingabegebietsschemabezeichner noch nicht geladen ist, lädt und aktiviert die Funktion den Eingabegebietsschemabezeichner für das System.

KLF_NOTELLSHELL
0x00000080
Vor Windows 8: Verhindert, dass eine ShellProc- Hookprozedur beim Laden des neuen Eingabegebietsschemabezeichners einen HSHELL_LANGUAGE Hook-Code empfängt. Dieser Wert wird in der Regel verwendet, wenn eine Anwendung mehrere Eingabegebietsschema-IDs nacheinander lädt. Das Anwenden dieses Werts auf alle Eingabegebietsschema-IDs verzögert die Verarbeitung der Shell, bis alle Eingabegebietsschema-IDs hinzugefügt wurden.

Ab Windows 8: In diesem Szenario wird der letzte Eingabegebietsschemabezeichner für das gesamte System festgelegt.

KLF_REORDER
0x00000008
Vor Windows 8: Verschiebt den angegebenen Eingabegebietsschemabezeichner in den Kopf der Eingabegebietsschema-ID-Liste, wodurch dieser Gebietsschemabezeichner zum aktiven Gebietsschemabezeichner für den aktuellen Thread wird. Dieser Wert ordnet die Eingabegebietsschema-ID-Liste neu an, auch wenn KLF_ACTIVATE nicht angegeben wird.

Ab Windows 8: Verschiebt den angegebenen Eingabegebietsschemabezeichner in den Kopf der Eingabegebietsschema-ID-Liste, wodurch dieser Gebietsschemabezeichner der aktive Gebietsschemabezeichner für das System wird. Dieser Wert ordnet die Eingabegebietsschema-ID-Liste neu an, auch wenn KLF_ACTIVATE nicht angegeben wird.

KLF_REPLACELANG
0x00000010
Wenn der neue Eingabegebietsschemabezeichner denselben Sprachbezeichner wie ein aktueller Eingabegebietsschemabezeichner aufweist, ersetzt der neue Eingabegebietsschemabezeichner den aktuellen als Eingabegebietsschemabezeichner für diese Sprache. Wenn dieser Wert nicht angegeben wird und die Eingabegebietsschema-IDs dieselben Sprachbezeichner aufweisen, wird der aktuelle Eingabegebietsschemabezeichner nicht ersetzt, und die Funktion gibt NULL-zurück.
KLF_SUBSTITUTE_OK
0x00000002
Ersetzt den angegebenen Eingabegebietsschemabezeichner durch ein anderes vom Benutzer bevorzugtes Gebietsschema. Das System beginnt mit diesem Kennzeichensatz, und es wird empfohlen, dass Ihre Anwendung immer dieses Kennzeichen verwendet. Die Ersetzung tritt nur auf, wenn der Registrierungsschlüssel HKEY_CURRENT_USER\Keyboard Layout\Substitutes explizit ein Ersetzungsgebietsschema definiert. Wenn der Schlüssel beispielsweise den Wertnamen "00000409" mit dem Wert "00010409" enthält, bewirkt das Laden des US-Layouts ("00000409") stattdessen das United States-Dvorak Layout ("00010409"). Das System verwendet KLF_SUBSTITUTE_OK beim Starten, und es wird empfohlen, dass alle Anwendungen diesen Wert beim Laden von Eingabegebietsschema-IDs verwenden, um sicherzustellen, dass die Benutzereinstellung ausgewählt ist.
KLF_SETFORPROCESS
0x00000100
Vor Windows 8: Dieses Flag ist nur mit KLF_ACTIVATEgültig. Aktiviert den angegebenen Eingabegebietsschemabezeichner für den gesamten Prozess und sendet die WM_INPUTLANGCHANGE Nachricht an den Fokus oder das aktive Fenster des aktuellen Threads. In der Regel aktiviert LoadKeyboardLayout einen Eingabegebietsschemabezeichner nur für den aktuellen Thread.

Ab Windows 8: Dieses Kennzeichen wird nicht verwendet. LoadKeyboardLayout aktiviert immer einen Eingabegebietsschemabezeichner für das gesamte System, wenn der aktuelle Prozess das Fenster mit Tastaturfokus besitzt.

KLF_UNLOADPREVIOUS
Dieses Kennzeichen wird nicht unterstützt. Verwenden Sie stattdessen die funktion UnloadKeyboardLayout.

Rückgabewert

Typ: HKL-

Wenn die Funktion erfolgreich ist, ist der Rückgabewert der Eingabegebietsschemabezeichner, der dem in pwszKLIDangegebenen Namen entspricht. Wenn kein übereinstimmende Gebietsschema verfügbar ist, ist der Rückgabewert die Standardsprache des Systems.

Wenn die Funktion fehlschlägt, ist der Rückgabewert NULL. Dies kann auftreten, wenn die Layoutbibliothek aus dem Anwendungsverzeichnis geladen wird.

Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Der Eingabegebietsschemabezeichner ist ein breiteres Konzept als ein Tastaturlayout, da es auch einen Sprach-zu-Text-Konverter, einen Eingabemethoden-Editor (INPUT Method Editor, IME) oder eine andere Art von Eingabe umfassen kann.

Eine Anwendung kann und lädt in der Regel den Standardeingabegebietsschemabezeichner oder IME für eine Sprache und kann dies tun, indem nur eine Zeichenfolgenversion des Sprachbezeichners angegeben wird. Wenn eine Anwendung ein bestimmtes Gebietsschema oder IME laden möchte, sollte sie die Registrierung lesen, um den spezifischen Eingabegebietsschemabezeichner zu ermitteln, der an LoadKeyboardLayoutübergeben werden soll. In diesem Fall wird durch eine Anforderung zum Aktivieren des standardeingabegebietsschemabezeichners für ein Gebietsschema das erste übereinstimmende Gebietsschema aktiviert. Ein bestimmter IME sollte mithilfe eines expliziten Eingabegebietsschemabezeichners aktiviert werden, der von GetKeyboardLayout- oder LoadKeyboardLayout-zurückgegeben wird.

Vor Windows 8: Diese Funktion wirkt sich nur auf das Layout für den aktuellen Prozess oder Thread aus.

Ab Windows 8: Diese Funktion wirkt sich auf das Layout für das gesamte System aus.

Anmerkung

Der winuser.h-Header definiert LoadKeyboardLayout als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- winuser.h (enthalten Windows.h)
Library User32.lib
DLL- User32.dll

Siehe auch

ActivateKeyboardLayout-

Konzeptionelle

GetKeyboardLayoutName-

Tastatureingabe

MAKELANGID-

andere Ressourcen

Referenz-

UnloadKeyboardLayout-