В чем разница между Virtual Key Code
а также Scan Code
, Я прочитал о сканировании кода Вот но я не понимаю, для чего используются виртуальные коды и чем код сканирования отличается от виртуального кода?
Например в Джава :
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..?
Выше приведены лишь примеры, и я не хочу, чтобы концепция была разъяснена на этой основе.
код сканирования представляет аппаратно-зависимый код для конкретного ключа, однако виртуальный код представляет аппаратно-независимый и OS-зависимый код для того же ключа.
Поэтому, как программист, мы всегда должны использовать виртуальные коды …
теперь давайте перейдем к Java и C ++. Ключевые слова VK_ определены Microsoft, а Java использует собственные ключевые слова VK_ … следовательно, они могут ссылаться на одни и те же коды символов, но их значения различны.
Других решений пока нет …