Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Блокировка клавиатуры

18K
14 марта 2007 года
Gurt
14 / / 08.01.2007
Не подскажите как заблокировать/разблокировать клавиатуру на низком уровне (ASM86)???
Заранее благодарен...
261
14 марта 2007 года
ahilles
1.5K / / 03.11.2005
если тебе надо надо заблокировать клавиатуру вообще
в DOS тебе надо сбросить адрес обработчика 1 прерывания
а в windows потруднее будет потому что тебе надо будет узнать куда перенапрвлен первый вектор, и сбросить дескриптор этого вектора в IDT
сбросить это наверно сильно сказано, можно записать адрес процедуры в которой только лишь одна команда - iret
349
15 марта 2007 года
Phantom-84
656 / / 27.10.2005
В самом клавиатурном интерфейсе имеется возможность блокировки, кроме того, это можно сделать через контроллер прерываний.
26K
21 марта 2007 года
powt.63kvv
8 / / 08.03.2007
ребят, помогите... а.. ) Вобщем надо на 2 секунды убить клаву.. вот.А потом естественно оживить .. вот что я делаю:
Код:
asm{
          mov dx, 0x8480
          mov cx, 0x1E
          mov ah, 0x86
          in al, 0x61
          push ax
          or al, 0x80
          out 0x61, al
          int 0x15
          pop ax
          out 0x61,al
          mov al,20h
          out 20h,al
};

задержка впринципе происходинт, но клава не отключается, она продалжает посылать скан-коды. Чо делать?
21K
31 марта 2007 года
Gais
23 / / 28.03.2007
Это первый способ (сам не пробовал, читал в журнале "Хакер")
in al,21h

or al,00000010b ; irq 1 клавиатурное irq

out 21h,al

или

in al,61h

or al,10000000b ; бит 7 - отключает клаву

out 61h,al

или

mov al, 0ADh ; отключение клавиатуры

out 64h,al


Следующий код вызывает переполнение порта клавиатуры, он безотказно действует под MS-DOS, но и только :(.

in al,064

push ax

mov al,0FE

out 064,al

pop ax

out 064,al
18K
07 апреля 2007 года
Gurt
14 / / 08.01.2007
Цитата: Gais
Это первый способ (сам не пробовал, читал в журнале "Хакер")

in al,21h
or al,00000010b ; irq 1 клавиатурное irq
out 21h,al

или

mov al, 0ADh ; отключение клавиатуры
out 64h,al


Эти два способа намертво глушат клавиатуру...разблокирывать ее после них нельзя....нужно перезагружаться

Цитата:

in al,61h
or al,10000000b ; бит 7 - отключает клаву
out 61h,al


Этот способ вообще не работает (хотя должен =()

Цитата:

Следующий код вызывает переполнение порта клавиатуры, он безотказно действует под MS-DOS, но и только :(.

in al,064
push ax
mov al,0FE
out 064,al
pop ax
out 064,al


Этот тупо перезагружает комп.....

P.S. Все способы были испытаны под MS-DOS


Может есть еще какието варианты???

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог