![]() |
|
#1
|
|||
|
|||
![]() Добрый вечер. Подскажите пожалуйста как определить состояние клавиши нажата ли или нет. Да пример желательно с помощью вставки asm. Заранее благодарю.
Пример: Код:
|
#2
|
||||
|
||||
![]() Код:
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
||||
|
||||
![]() Нажата это кажись прерывание 60h?
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#4
|
||||
|
||||
![]() Нет в винде никаких программных прерываний. Вернее они есть, но их крайне мало, и они не совпадают с досовскими, потому что это крайне убогий и ущербный способ предоставления сервисов ОС.
jmp $ ; Happy End! The Cake Is A Lie. |
Этот пользователь сказал Спасибо Bargest за это полезное сообщение: | ||
ApxaHGe1 (17.08.2015)
|
#5
|
|||
|
|||
![]() Цитата:
|
#6
|
||||
|
||||
![]() Это работает лишь в очень старых версиях Windows, теперь такое блокируется на уровне драйверной "обвязки" ядра, другими словами GetKeyState самый подходящий вариант для определения состояния конкретной клавиши, иначе есть ещё несколько способов, но они тоже за здоровый образ жизни без "асмы", напр.
Код:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
||||
|
||||
![]() Зачем же такой гемор с циклом по всем кнопкам, когда есть GetKeyboardState если нужно несколько клавиш?
jmp $ ; Happy End! The Cake Is A Lie. |
#8
|
|||
|
|||
![]() Цитата:
|
#9
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#10
|
||||
|
||||
![]() Таки ТС нужна конкретная кнопка, а не диапазон:
Цитата:
и я не понимаю, почему ТС до сих пор не вбил эти два слова в гугле и не получил ответ на свой вопрос. Касаемо цикла: Цитата:
jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 18.08.2015 в 17:02. |
#11
|
||||
|
||||
![]() Оффтоп:
Может быть и правда, как обычно, простое непонимание заданного вопроса здесь наблюдается с моей стороны ![]() А если конкретная клавиша нужна, то тогда вот компиляция из всего вышесказанного на примере наблюдения за состоянием Shift Код:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#12
|
|||||
|
|||||
![]() Цитата:
Код:
вот и подумал можно ли тоже самое реализовать только со вставкой asm |
#13
|
||||
|
||||
![]() if совершенно лишний, проще result := GetKeyState(16) <> 0.
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#14
|
||||
|
||||
![]() Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |