Разница между виртуальным кодом и кодом сканирования

В чем разница между 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..?
}

В С:

KBDLLHOOKSTRUCT *kbhook = (KBDLLHOOKSTRUCT *) lParam;
printf("%u\n",kbhook->vkCode); // WHAT DO I GET ? A Scan code or a Virtual Code..?

Выше приведены только примеры, и я не хочу, чтобы концепция была разъяснена на этой основе.

1 ответ

Код сканирования представляет аппаратно-зависимый код для конкретного ключа, однако виртуальный код представляет аппаратно-независимый и OS-зависимый код для того же ключа. Поэтому, как программист, мы всегда должны использовать виртуальные коды...

теперь давайте перейдем к Java и C++. Ключевые слова VK_ определены Microsoft, а Java использует собственные ключевые слова VK_... следовательно, они могут ссылаться на одни и те же коды символов, но их значения различны.

Другие вопросы по тегам