---
name: "VkKeyScanA"
section: "3w"
platform: "linux"
package: "wine-doc"
version: "0.0.981018-1.1"
release: "Debian 2.1 (Slink)"
platforms: ["linux"]
url: "https://new.carta.tech/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)](/GetKeyState/3w.md), [GetKeyboardState(3w)](/GetKeyboardState/3w.md), [SetKeyboardState(3w)](/SetKeyboardState/3w.md), [GetAsyncKeyState(3w)](/GetAsyncKeyState/3w.md), [TranslateAccelerator(3w)](/TranslateAccelerator/3w.md), [OemKeyScan(3w)](/OemKeyScan/3w.md), [VkKeyScanW(3w)](/VkKeyScanW/3w.md), [GetKeyboardType(3w)](/GetKeyboardType/3w.md), [MapVirtualKeyA(3w)](/MapVirtualKeyA/3w.md), [GetKBCodePage(3w)](/GetKBCodePage/3w.md), [GetKeyboardLayoutNameA(3w)](/GetKeyboardLayoutNameA/3w.md), [GetKeyboardLayoutNameW(3w)](/GetKeyboardLayoutNameW/3w.md), [GetKeyNameTextA(3w)](/GetKeyNameTextA/3w.md), [GetKeyNameTextW(3w)](/GetKeyNameTextW/3w.md), [ToAscii(3w)](/ToAscii/3w.md), [GetKeyboardLayout(3w)](/GetKeyboardLayout/3w.md), [GetKeyboardLayoutList(3w)](/GetKeyboardLayoutList/3w.md), [RegisterHotKey(3w)](/RegisterHotKey/3w.md), [UnregisterHotKey(3w)](/UnregisterHotKey/3w.md)
