Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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 |
Я на асме не программирую....просто хочу его всунуть в Дельфи. У меня где то валялся код на асме как отключить клаву и мишь но я его где то потерял. ![]() ![]() помогите плз. |
Автор: Chingachguk 6.2.2003, 22:15 |
Что значит - отключить ? Чтобы больше не работало ? Временно ? |
Автор: X-Vlad 7.2.2003, 06:57 |
отключить и включить программно. не спалить контроллер клавы ![]() |
Автор: 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 |
Интересно. Попробую |