4

Virtual Key Code和有什么区别Scan Code我在这里阅读了有关扫描码的信息,但我不明白虚拟代码的用途是什么,以及扫描代码与虚拟代码有何不同?

例如在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..?

以上只是示例,我不希望在此基础上阐明概念。

4

1 回答 1

1

扫描代码表示特定键的硬件相关代码,但虚拟代码表示同一键的硬件无关代码和操作系统相关代码。因此,作为程序员,我们应该始终使用虚拟代码...

现在让我们来看看 Java 和 C++。VK_ 关键字是微软定义的,Java 使用自己的 VK_ 关键字......因此它们可能引用相同的字符代码,但它们的值不同。

于 2012-10-05T06:27:54.657 回答