![]() |
|
![]() ![]() ![]() |
|
X-Vlad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 570 Регистрация: 10.4.2002 Где: Украина, Львов Репутация: нет Всего: 5 |
Привет всем...
Как программно на "асме" отключить и включить клаву и мышь? Спасибо. |
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
В разделе Дельфи как раз обсуждается.
|
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: нет Всего: 64 |
Я с асмом токо начинаю работать, но вот в одной книжке написано, что разлешить/запретить работу мышки PS/2 можно прерыванием Int 15h, функцией C2h, подфункцией 00h.
Перед вызовом прерывания Int 15h необходимо занести в регистры следующие значения: - в AX - значение C200h; - в BH - код команды (0 - запретить работу, 1 -разрешть работу); -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Во-первых, скажи, подо что ты хочешь иметь код (дос/win9x...etc).
Если в досе, то доступно int 33h - это вектор мыши, который ставит любой драйвер. Посмотри интерфейс этого вектора. У него куча функций, в том числе и "disable". Общий случай: порты. Если мышь висит на com2 к примеру, то вырубить прерывания можно через обращения к порту 2f8h(base)+N. Но после этого состояние порта тоже надо будет восстановить, при этом не потеряв работоспособность драйвера. В досе это можно делать в любой проге, в 9x не знаю, но винда может обрубить тебе доступ к портам (как это происходит с ЖД), поэтому надо размещать такой код либо в драйвере (vxd), либо незаконно перейдя в ring0 из win32. То же самое примерно можно сказать про NT+. Вообще, лучше начинать с поиска интерфейса у апи или драйверов, как советовали (я смотрел тему в разделе Дельфи), и только потом спускаться до портов. Что касается вектора 15h, то он точно только для дос. Инфу по векторам ты можешь получить в Ральфе Брауне. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
X-Vlad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 570 Регистрация: 10.4.2002 Где: Украина, Львов Репутация: нет Всего: 5 |
Я на асме не программирую....просто хочу его всунуть в Дельфи.
У меня где то валялся код на асме как отключить клаву и мишь но я его где то потерял. ![]() ![]() помогите плз. |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Что значит - отключить ? Чтобы больше не работало ? Временно ?
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
X-Vlad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 570 Регистрация: 10.4.2002 Где: Украина, Львов Репутация: нет Всего: 5 |
отключить и включить программно.
не спалить контроллер клавы ![]() |
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Posmotri v razdele FAQ C++. Tam kak raz na ASM + API. Tak chto v Delphi i delat' nichego ne pridetsja.
-------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
А как вырубить мышь под 9х из ринг-0?
Желательно COM,ps/2 и USB. Я смотрел ДДК, там у драйвера мыши вроде нет таких сервисов. Может есть какой то стандартный способ для этого? |
|||
|
||||
Chingachguk |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
;)
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 и высылать в баню все запросы к мыше. -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
[auxx] |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 148 Регистрация: 2.2.2003 Репутация: нет Всего: нет |
Интересно. Попробую
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |