首页 > 其他分享 >虚拟键值和扫描码

虚拟键值和扫描码

时间:2024-12-21 16:10:27浏览次数:3  
标签:VK 扫描 小键盘 虚拟 键值 OEM

扫描码和虚拟键值是处理键盘输入时使用的两种不同概念:

  1. 扫描码(Scan Code)

    • 扫描码是硬件级的键盘输入信号。
    • 每个键在键盘上都有一个唯一的扫描码。
    • 键盘将按键转换为扫描码发送给操作系统。
    • 扫描码表示的是物理键的位置,与具体的字符或功能无关。
  2. 虚拟键值(Virtual Key Code)

    • 虚拟键值是操作系统级别的抽象。
    • 操作系统将扫描码转换为虚拟键值,用于识别键的功能。
    • 虚拟键值与具体的字符或功能关联,而不是键的位置。
    • 例如,字母 'A' 和小键盘的 'A' 可能有相同的虚拟键值,但不同的扫描码。

总结来说,扫描码与键盘硬件直接相关,而虚拟键值则是操作系统用于处理键盘输入的抽象表示。


Windows 下的虚拟键值(Virtual Key Codes)有很多,这里列出一些常用的:

  • VK_LBUTTON (0x01): 左鼠标按钮
  • VK_RBUTTON (0x02): 右鼠标按钮
  • VK_CANCEL (0x03): 控制中断
  • VK_MBUTTON (0x04): 中鼠标按钮
  • VK_XBUTTON1 (0x05): 第一个 X 鼠标按钮
  • VK_XBUTTON2 (0x06): 第二个 X 鼠标按钮
  • VK_BACK (0x08): Backspace 键
  • VK_TAB (0x09): Tab 键
  • VK_CLEAR (0x0C): Clear 键
  • VK_RETURN (0x0D): Enter 键
  • VK_SHIFT (0x10): Shift 键
  • VK_CONTROL (0x11): Ctrl 键
  • VK_MENU (0x12): Alt 键
  • VK_PAUSE (0x13): Pause 键
  • VK_CAPITAL (0x14): Caps Lock 键
  • VK_ESCAPE (0x1B): Escape 键
  • VK_SPACE (0x20): 空格键
  • VK_PRIOR (0x21): Page Up 键
  • VK_NEXT (0x22): Page Down 键
  • VK_END (0x23): End 键
  • VK_HOME (0x24): Home 键
  • VK_LEFT (0x25): 左箭头键
  • VK_UP (0x26): 上箭头键
  • VK_RIGHT (0x27): 右箭头键
  • VK_DOWN (0x28): 下箭头键
  • VK_SELECT (0x29): Select 键
  • VK_PRINT (0x2A): Print 键
  • VK_EXECUTE (0x2B): Execute 键
  • VK_SNAPSHOT (0x2C): Print Screen 键
  • VK_INSERT (0x2D): Insert 键
  • VK_DELETE (0x2E): Delete 键
  • VK_HELP (0x2F): Help 键
  • VK_0 - VK_9 (0x30 - 0x39): 0-9 数字键
  • VK_A - VK_Z (0x41 - 0x5A): A-Z 字母键
  • VK_NUMPAD0 - VK_NUMPAD9 (0x60 - 0x69): 数字小键盘 0-9
  • VK_MULTIPLY (0x6A): 小键盘乘号键
  • VK_ADD (0x6B): 小键盘加号键
  • VK_SEPARATOR (0x6C): 分隔符键
  • VK_SUBTRACT (0x6D): 小键盘减号键
  • VK_DECIMAL (0x6E): 小键盘小数点键
  • VK_DIVIDE (0x6F): 小键盘除号键
  • VK_F1 - VK_F24 (0x70 - 0x87): F1-F24 功能键
  • VK_NUMLOCK (0x90): Num Lock 键
  • VK_SCROLL (0x91): Scroll Lock 键

这只是部分常用的虚拟键值,完整列表可以在微软的官方文档中找到。


以下是 Windows 下常见的 104 键盘的扫描码和虚拟键值的对应表:

按键 扫描码 虚拟键值
Esc 01 VK_ESCAPE (0x1B)
F1 3B VK_F1 (0x70)
F2 3C VK_F2 (0x71)
F3 3D VK_F3 (0x72)
F4 3E VK_F4 (0x73)
F5 3F VK_F5 (0x74)
F6 40 VK_F6 (0x75)
F7 41 VK_F7 (0x76)
F8 42 VK_F8 (0x77)
F9 43 VK_F9 (0x78)
F10 44 VK_F10 (0x79)
F11 57 VK_F11 (0x7A)
F12 58 VK_F12 (0x7B)
~ 29 VK_OEM_3 (0xC0)
1 02 VK_1 (0x31)
2 03 VK_2 (0x32)
3 04 VK_3 (0x33)
4 05 VK_4 (0x34)
5 06 VK_5 (0x35)
6 07 VK_6 (0x36)
7 08 VK_7 (0x37)
8 09 VK_8 (0x38)
9 0A VK_9 (0x39)
0 0B VK_0 (0x30)
- 0C VK_OEM_MINUS (0xBD)
= 0D VK_OEM_PLUS (0xBB)
Backspace 0E VK_BACK (0x08)
Tab 0F VK_TAB (0x09)
Q 10 VK_Q (0x51)
W 11 VK_W (0x57)
E 12 VK_E (0x45)
R 13 VK_R (0x52)
T 14 VK_T (0x54)
Y 15 VK_Y (0x59)
U 16 VK_U (0x55)
I 17 VK_I (0x49)
O 18 VK_O (0x4F)
P 19 VK_P (0x50)
[ 1A VK_OEM_4 (0xDB)
] 1B VK_OEM_6 (0xDD)
\ 2B VK_OEM_5 (0xDC)
Caps Lock 3A VK_CAPITAL (0x14)
A 1E VK_A (0x41)
S 1F VK_S (0x53)
D 20 VK_D (0x44)
F 21 VK_F (0x46)
G 22 VK_G (0x47)
H 23 VK_H (0x48)
J 24 VK_J (0x4A)
K 25 VK_K (0x4B)
L 26 VK_L (0x4C)
; 27 VK_OEM_1 (0xBA)
' 28 VK_OEM_7 (0xDE)
Enter 1C VK_RETURN (0x0D)
Shift (左) 2A VK_SHIFT (0x10)
Z 2C VK_Z (0x5A)
X 2D VK_X (0x58)
C 2E VK_C (0x43)
V 2F VK_V (0x56)
B 30 VK_B (0x42)
N 31 VK_N (0x4E)
M 32 VK_M (0x4D)
, 33 VK_OEM_COMMA (0xBC)
. 34 VK_OEM_PERIOD (0xBE)
/ 35 VK_OEM_2 (0xBF)
Shift (右) 36 VK_SHIFT (0x10)
Ctrl (左) 1D VK_CONTROL (0x11)
Alt (左) 38 VK_MENU (0x12)
Space 39 VK_SPACE (0x20)
Alt (右) E038 VK_MENU (0x12)
Ctrl (右) E01D VK_CONTROL (0x11)

请注意,右侧的 Ctrl 和 Alt 键的扫描码有前缀 E0,表示扩展键。

标签:VK,扫描,小键盘,虚拟,键值,OEM
From: https://www.cnblogs.com/cuish/p/18620844

相关文章

  • Disk2vhd 是一个由 Microsoft 提供的工具,允许用户将物理磁盘或分区转换为虚拟硬盘(VHD)
    Disk2vhd-Sysinternals|MicrosoftLearn Disk2vhd是一个由Microsoft提供的工具,允许用户将物理磁盘或分区转换为虚拟硬盘(VHD)文件。它的名字中,"Disk"表示物理磁盘,而"VHD"是指虚拟硬盘(VirtualHardDisk)。该工具可以帮助用户将物理机上的整个磁盘映像(包括操作系统、应用......
  • 关于 VMware 与 WSL 在 Win11 虚拟化的一些问题
    关于VMware与WSL在Win11虚拟化的一些问题VMware虚拟化问题之前用虚拟机做计网GNS3组网实验的时候需要用到虚拟机虚拟化,然后一直显示虚拟化不成功,检查过BIOS等设置均显示没有错误。后来发现是Windows自带的虚拟机功能与VMware的虚拟化功能产生了冲突,处理办法如下......
  • 在虚拟机里执行protoc报非法指令( Illegal instruction)
    问题在x86虚拟机里编译perfetto的时候遇到执行protoc报非法指令,但是在host上编译的时候并没有这样的问题原因虽然虚拟机和宿主机都是同一个指令集架构,但是CPU在一些特殊指令上的支持还是有区别的,如果Host可以,但是虚拟机上不行,可能就是虚拟机CPU不支持某些特性,导致当执行到这些......
  • 你有自己安装过虚拟机吗?主要是用来做什么?
    是的,我曾经安装过虚拟机,主要是用于前端开发。安装虚拟机的原因主要有以下几点:环境隔离:通过虚拟机,我可以创建一个与宿主机完全隔离的环境。这对于前端开发来说非常有用,因为我可以在这个隔离的环境中安装和配置特定的开发工具、库和框架,而不会影响到宿主机的系统环境。测试兼......
  • 虚拟机转换工具(VM转换工具)用于将虚拟机的格式从一种类型转换为另一种类型,或者将物理机
    下面是StarWindV2VConverter、QEMU、VMwarevCenterConverter、MicrosoftVirtualMachineConverter和CloudEndureMigration的对比表格,展示了它们在主要功能、支持的平台、转换类型等方面的区别。工具支持的转换类型支持的平台支持的虚拟化平台是否支持物理机到......
  • PortQry 命令行端口扫描程序版本 2.0 下载 PortQryV2.exe,这是一个命令行实用程序,可
    从Microsoft下载中心下载PortQry命令行端口扫描程序版本2.0---DownloadPortQryCommandLinePortScannerVersion2.0fromOfficialMicrosoftDownloadCenter使用PortQry命令行工具-WindowsServer|MicrosoftLearn 什么是PortQry?PortQry是一款由微软开......
  • 虚拟机下centos7系统实现修改ip地址为固定ip
    修改虚拟机配置目的如果不修改虚拟机配置,会出现设置了静态IP和相关参数之后,本地局域网可以互相访问,但是CentOS系统访问不了互联网。步骤一:以管理员身份打开虚拟机步骤二:打开虚拟网络编辑器左上角菜单栏找到“编辑”选项并单击,在下拉子菜单中单击选项“虚拟网络编辑器”。步......
  • 利用Oracle VM VirtualBox安装Centos7虚拟机,及后续设置
    #OracleVMVirtualBox网站下载地址:直接按照最新的安装即可https://www.oracle.com/virtualization/virtualbox/安装Centos7虚拟机镜像资源1,准备一个CentOS-7-x86_64-Minimal-2009.iso镜像文件,这是我们公司服务器用的一个版本,所以我从网上下载了一个一样的版本,就用这个为例......
  • 真·保姆级——在VMware的Ubuntukylin上进行Hadoop单机_伪分布式安装时安装VMware_Too
    目录一、前言二、版本信息三、hadoop用户创建1.创建hadoop用户2.在创建hadoop用户后对系统进行重启四、解决办法4.1更改默认登陆用户4.2安装VMwareTools4.3验证VMwareTools是否安装成功4.4KO!!!4.4.1卸载安装的VmwareTools4.4.2安装VMwareTools所需的组件五、可能遇见的问......
  • Ubuntu 使用 KVM 安装 windows11 虚拟机
    1、Ubuntu安装相关组件sudoapt-getupdatesudoapt-yinstalllibvirt-devsudoapt-yinstalllibvirt-daemon-systemsudoapt-yinstalllibvirt-clientssudoapt-yinstallvirtinstsudoapt-yinstallvirt-managersudoapt-yinstallqemu-kvmsudoapt-yi......