ПРЯМО читая ввод с клавиатуры - PullRequest
1 голос
/ 18 августа 2011

Есть ли какой-либо способ непосредственного чтения ввода с клавиатуры?

Под прямым, я имею в виду БЕЗ использования функций Win API или какой-либо предварительно написанной процедуры.Просто моя простая сборка.

Например, мой папа показал мне свою разборку ОС ZX-81.Мы нашли процедуру с именем INKEY $, которая напрямую попадает в память, копирует значения буфера клавиатуры и выполняет с ними все, что нужно.Я знаю, что ZX-81 является историческим, но я хотел знать, есть ли ЛЮБОЙ способ чтения непосредственно из буфера.

Я разобрал 'user32.dll' и искал GetAsyncKeyState и GetKeyboardState.Вот кусок кода из GetAsyncKeyState, который, кажется, выполняет «чтение из буфера» и решает, что делать, если клавиша нажата или нет (хотя в обоих случаях они переходят на один и тот же адрес ...)

mov edx, [ebp+vKey]
cmp edx, 2
jz loc_7DC73234
cmp edx, 1
jz loc_7DC73234

Мой папа сказал, что это может быть невозможно сделать сейчас, потому что клавиатуры подключены через USB, и у них есть драйверы и другие устройства для выполнения этих действий низкого уровня.Но тогда вы все равно можете читать непосредственно из того места, где драйверы клавиатуры сохраняют нажатия клавиш.

Итак, вы все равно можете перейти в память и с помощью простой инструкции 'mov' скопировать значение, говорящее о нажатии клавиши или нет?Спасибо.

...