【发布时间】:2012-10-05 04:00:28
【问题描述】:
Virtual Key Code 和 Scan Code 有什么区别。我阅读了有关扫描码here 的信息,但我不明白虚拟代码的用途以及扫描代码与虚拟代码有何不同?
例如在 Java 中:
private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) {
int code = evt.getKeyCode(); // WHAT DO I GET ? A Scan code or a Virtual Code..?
}
在 C 中:
KBDLLHOOKSTRUCT *kbhook = (KBDLLHOOKSTRUCT *) lParam;
printf("%u\n",kbhook->vkCode); // WHAT DO I GET ? A Scan code or a Virtual Code..?
以上只是例子,我不想在此基础上阐明概念。
【问题讨论】:
-
IIRC,扫描码可以变化,所以 vk 码是一种将实际上是相同键的不同扫描码变成一个统一码的方法。另一方面,我的记忆可能完全不正常了。
-
简单地说,虚拟键码是硬件独立的,而扫描码是硬件相关的
-
@Vulcan 你确定,它们是虚拟代码吗?
-
@SuhailGupta 对于 Java 示例,绝对是。对于 C 示例,我很确定,特别是因为该字段被称为“vkCode”,意思是虚拟键代码。
-
@Vulcan 阅读最多评论@stackoverflow.com/questions/10848901/…