Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Отключение клавы и мыши...


Автор: X-Vlad 5.2.2003, 08:36
Привет всем...

Как программно на "асме" отключить и включить клаву и мышь?

Спасибо.

Автор: [auxx] 5.2.2003, 09:28
В разделе Дельфи как раз обсуждается.


Автор: <Spawn> 6.2.2003, 16:40
Я с асмом токо начинаю работать, но вот в одной книжке написано, что разлешить/запретить работу мышки PS/2 можно прерыванием Int 15h, функцией C2h, подфункцией 00h.

Перед вызовом прерывания Int 15h необходимо занести в регистры следующие значения:

- в AX - значение C200h;
- в BH - код команды (0 - запретить работу, 1 -разрешть работу);

Автор: Chingachguk 6.2.2003, 18:39
Во-первых, скажи, подо что ты хочешь иметь код (дос/win9x...etc).
Если в досе, то доступно int 33h - это вектор мыши, который ставит любой драйвер. Посмотри интерфейс этого вектора. У него куча функций, в том числе и "disable".
Общий случай: порты. Если мышь висит на com2 к примеру, то вырубить прерывания можно через обращения к порту 2f8h(base)+N. Но после этого состояние порта тоже надо будет восстановить, при этом не потеряв работоспособность драйвера. В досе это можно делать в любой проге, в 9x не знаю, но винда может обрубить тебе доступ к портам (как это происходит с ЖД), поэтому надо размещать такой код либо в драйвере (vxd), либо незаконно перейдя в ring0 из win32. То же самое примерно можно сказать про NT+.
Вообще, лучше начинать с поиска интерфейса у апи или драйверов, как советовали (я смотрел тему в разделе Дельфи), и только потом спускаться до портов.
Что касается вектора 15h, то он точно только для дос. Инфу по векторам ты можешь получить в Ральфе Брауне.

Автор: X-Vlad 6.2.2003, 22:01
Я на асме не программирую....просто хочу его всунуть в Дельфи.
У меня где то валялся код на асме как отключить клаву и мишь но я его где то потерял.sad.gif вот поетому спрашиваю у вас. нужно отключить под МастдайНТ\2000\ХР. В разделе дельфи есть ответ но он подходит только под вин98..sad.gif
помогите плз.

Автор: Chingachguk 6.2.2003, 22:15
Что значит - отключить ? Чтобы больше не работало ? Временно ?

Автор: X-Vlad 7.2.2003, 06:57
отключить и включить программно.
не спалить контроллер клавы smile.gif

Автор: neutrino 7.2.2003, 18:50
Posmotri v razdele FAQ C++. Tam kak raz na ASM + API. Tak chto v Delphi i delat' nichego ne pridetsja.

Автор: [auxx] 7.2.2003, 23:22
А как вырубить мышь под 9х из ринг-0?
Желательно COM,ps/2 и USB.

Я смотрел ДДК, там у драйвера мыши вроде нет таких сервисов. Может есть какой то стандартный способ для этого?

Автор: Chingachguk 8.2.2003, 00:37
;)

1) Просто залудить порта ему;
2) Или перехватить(это другой сервис и другой драйвер, но не суть):

; INT 20 P - Microsoft Windows - VCOMM - VxD SERVICES
; VxD = 002Bh
; 0004h "_VCOMM_OpenComm"
mov eax,002B0004h
mov esi,offset32 Hooked_VCOMM_OpenComm
int 20h ; Call VxD
dw 0090h ; 0090h hook device service
dw 0001h ; ID VMM
mov dword ptr [edi].res,1
jnc @@HookOpenCommOK

Через VMM и высылать в баню все запросы к мыше.

Автор: [auxx] 9.2.2003, 03:10
Интересно. Попробую

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)