虚拟键码 (VK) 和扫描码 (SC) 绝不是 AutoHotkey 所独有的。
扫描码是当您按下或释放按键时键盘硬件发送的代码。无论系统设置如何,对于任何给定的物理密钥,这些值始终相同。
虚拟键码是 Windows 映射到扫描码以赋予其含义的代码。给定的虚拟键码通常始终具有相同的含义,但可以分配给不同键盘布局上的不同物理键(不同的扫描码)。
当您发送或按下某个键时,可以通过 SC、VK 或两者来识别。然而,AutoHotkey 被设计为只能通过 SC 或 VK 来识别热键,而不是同时识别两者。
部分非标准按键扫码未分配;也就是说,他们没有VK。发送不带 VK 的扫描码通常不会产生任何效果,因为 Windows 应用程序通常不会为扫描码分配含义,而只会为虚拟键码分配含义。但是,如果您以表格形式发送内容{scNNN},AutoHotkey 将尝试自动填写适当的 VK。
有时,单个 VK 会映射到两个扫描码。在这些情况下,SC 热键可以区分两个物理键,而 VK 热键将由两个物理键激活(除非 SC 热键也存在,因为 SC 热键优先)。