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 |
---|---|
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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
Konzeptionelle
andere Ressourcen
Referenz-