Freigeben über


MapVirtualKeyExA-Funktion (winuser.h)

Übersetzt einen virtuellen Tastencode in einen Scancode oder Zeichenwert bzw. ordnet diesen virtuellen Tastencode zu oder übersetzt einen Scancode in einen virtuellen Tastencode. Die Funktion übersetzt die Codes mithilfe der Eingabesprache und eines Eingabe-Gebietsschemabezeichners.

Syntax

UINT MapVirtualKeyExA(
  [in]                UINT uCode,
  [in]                UINT uMapType,
  [in, out, optional] HKL  dwhkl
);

Parameter

[in] uCode

Typ: UINT

Der Virtuelle Schlüsselcode oder der Scancode für einen Schlüssel. Wie dieser Wert interpretiert wird, hängt vom Wert des uMapType-Parameters ab.

[in] uMapType

Typ: UINT

Die auszuführende Übersetzung. Der Wert dieses Parameters hängt vom Wert des uCode-Parameters ab.

Wert Bedeutung
MAPVK_VK_TO_VSC
0
Der uCode-Parameter ist ein Virtueller Schlüsselcode und wird in einen Scancode übersetzt. Wenn es sich um einen Virtuellen Schlüsselcode handelt, der nicht zwischen linken und rechten Tasten unterscheidet, wird der linke Scancode zurückgegeben. Wenn keine Übersetzung vorhanden ist, gibt die Funktion 0 zurück.
MAPVK_VSC_TO_VK
1
Der uCode-Parameter ist ein Scancode und wird in einen Virtuellen Schlüsselcode übersetzt, der nicht zwischen linken und rechten Tasten unterscheidet. Wenn keine Übersetzung vorhanden ist, gibt die Funktion 0 zurück.
Windows Vista und höher: Das hohe Byte des uCode-Werts kann entweder 0xe0 oder 0xe1 enthalten, um den erweiterten Scancode anzugeben.
MAPVK_VK_TO_CHAR
2
Der uCode-Parameter ist ein virtueller Schlüsselcode und wird in einem unshiftierten Zeichenwert im Wort mit niedriger Reihenfolge des Rückgabewerts übersetzt. Tote Schlüssel (diakritische Elemente) werden durch Festlegen des obersten Bits des Rückgabewerts angezeigt. Wenn keine Übersetzung vorhanden ist, gibt die Funktion 0 zurück. Siehe Hinweise.
MAPVK_VSC_TO_VK_EX
3
Der uCode-Parameter ist ein Scancode und wird in einen Virtuellen Schlüsselcode übersetzt, der zwischen linken und rechten Tasten unterscheidet. Wenn keine Übersetzung vorhanden ist, gibt die Funktion 0 zurück.
Windows Vista und höher: Das hohe Byte des uCode-Werts kann entweder 0xe0 oder 0xe1 enthalten, um den erweiterten Scancode anzugeben.
MAPVK_VK_TO_VSC_EX
4
Windows Vista und höher: Der uCode-Parameter ist ein Virtueller Schlüsselcode und wird in einen Scancode übersetzt. Wenn es sich um einen Virtuellen Schlüsselcode handelt, der nicht zwischen linken und rechten Tasten unterscheidet, wird der linke Scancode zurückgegeben. Wenn der Scancode ein erweiterter Scancode ist, enthält das hohe Byte des zurückgegebenen Werts entweder 0xe0 oder 0xe1, um den erweiterten Scancode anzugeben. Wenn keine Übersetzung vorhanden ist, gibt die Funktion 0 zurück.

[in, out, optional] dwhkl

Typ: HKL

Eingabegebietsbezeichner, der zum Übersetzen des angegebenen Codes verwendet werden soll. Dieser Parameter kann ein beliebiger Eingabegebietsbezeichner sein, der zuvor von der LoadKeyboardLayout-Funktion zurückgegeben wurde.

Rückgabewert

Typ: UINT

Der Rückgabewert ist entweder ein Scancode, ein Virtueller Schlüsselcode oder ein Zeichenwert, abhängig vom Wert von uCode und uMapType. Wenn keine Übersetzung vorhanden ist, ist der Rückgabewert 0.

Hinweise

Der Eingabegebietsschemabezeichner ist ein umfassenderes Konzept als ein Tastaturlayout, da es auch einen Spracherkennungskonverter, eine Eingabemethode Editor (IME) oder eine andere Form der Eingabe umfassen kann.

Eine Anwendung kann MapVirtualKeyEx verwenden, um Scancodes in die Virtuellen Schlüsselcodekonstanten VK_SHIFT, VK_CONTROL und VK_MENU zu übersetzen und umgekehrt. Diese Übersetzungen unterscheiden nicht zwischen den linken und rechten Instanzen der UMSCHALT-, STRG- oder ALT-TASTE.

Eine Anwendung kann den Scancode abrufen, der dem linken oder rechten instance eines dieser Schlüssel entspricht, indem MapVirtualKeyEx aufgerufen wird, wobei uCode auf eine der folgenden Virtuellen Schlüsselcodekonstanten festgelegt ist:

  • VK_LSHIFT
  • VK_RSHIFT
  • VK_LCONTROL
  • VK_RCONTROL
  • VK_LMENU
  • VK_RMENU

Diese links und rechts unterscheidenden Konstanten sind für eine Anwendung nur über die Funktionen GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, MapVirtualKey UndMapVirtualKeyEx verfügbar. Eine vollständige Liste mit virtuellen Schlüsselcodes finden Sie unter Virtuelle Schlüsselcodes.

In MAPVK_VK_TO_CHAR Modus virtuelle Schlüsselcodes, die "A". Z' Schlüssel werden in Großbuchstaben "A" übersetzt. Z'-Zeichen unabhängig vom aktuellen Tastaturlayout. Wenn Sie einen Virtuellen Schlüsselcode in das entsprechende Zeichen übersetzen möchten, verwenden Sie die Funktion ToAscii .

Hinweis

Der winuser.h-Header definiert MapVirtualKeyEx 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 nicht codierungsneutralem Code 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
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (einschließlich Windows.h)
Bibliothek User32.lib
DLL User32.dll

Weitere Informationen