---
name: "VkKeyScanA"
section: "3w"
platform: "linux"
package: "wine-doc"
version: "0.0.981018-1.1"
release: "Debian 2.1 (Slink)"
platforms: ["linux"]
url: "https://carta.tech/man/VkKeyScanA"
---

# VkKeyScanA(3w)

VkKeyScanA (USER32.573)

## NAME

VkKeyScanA - VkKeyScanA      (USER32.573)

## SYNOPSIS

**WORD VkKeyScanA(CHAR cChar);**

## DESCRIPTION

VkKeyScan translates an ANSI character to a virtual-key and shift code for the current keyboard. High-order byte yields : 0	Unshifted 1	Shift 2	Ctrl 3-5	Shift-key combinations that are not used for characters 6	Ctrl-Alt 7	Ctrl-Alt-Shift I.e. :	Shift = 1, Ctrl = 2, Alt = 4. FIXME : works ok except for dead chars : VkKeyScan '^'(0x5e, 94) ... Got keycode 00 ... Returning 00 VkKeyScan '\`'(0x60, 96) ... Got keycode 00 ... Returning 00.

## SEE ALSO

[GetKeyState(3w)](/man/GetKeyState/3w.md), [GetKeyboardState(3w)](/man/GetKeyboardState/3w.md), [SetKeyboardState(3w)](/man/SetKeyboardState/3w.md), [GetAsyncKeyState(3w)](/man/GetAsyncKeyState/3w.md), [TranslateAccelerator(3w)](/man/TranslateAccelerator/3w.md), [OemKeyScan(3w)](/man/OemKeyScan/3w.md), [VkKeyScanW(3w)](/man/VkKeyScanW/3w.md), [GetKeyboardType(3w)](/man/GetKeyboardType/3w.md), [MapVirtualKeyA(3w)](/man/MapVirtualKeyA/3w.md), [GetKBCodePage(3w)](/man/GetKBCodePage/3w.md), [GetKeyboardLayoutNameA(3w)](/man/GetKeyboardLayoutNameA/3w.md), [GetKeyboardLayoutNameW(3w)](/man/GetKeyboardLayoutNameW/3w.md), [GetKeyNameTextA(3w)](/man/GetKeyNameTextA/3w.md), [GetKeyNameTextW(3w)](/man/GetKeyNameTextW/3w.md), [ToAscii(3w)](/man/ToAscii/3w.md), [GetKeyboardLayout(3w)](/man/GetKeyboardLayout/3w.md), [GetKeyboardLayoutList(3w)](/man/GetKeyboardLayoutList/3w.md), [RegisterHotKey(3w)](/man/RegisterHotKey/3w.md), [UnregisterHotKey(3w)](/man/UnregisterHotKey/3w.md)
