· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ASSEMBLER —› Проблемы при перехвате BIOS прерывания клавиатуры в DOS проге

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Сен 9, 2004 14:49:11

Спасибо всем за советы - извините что с опозданием - приболел тут немного...

Zombyte - спасибо, вставил и такую проверку.

Valterg - да я и сам понимаю что плохо так делать, но просто оно и так вроде работает.

Только почему-то оно работает только по VC, NC, или DOS Navigator.
При вызове из чистого DOS - клавиши не перехватывает, и когда программу одну (есть тут нужная прога - из за неё весь сыр-бор и начался - надо узнать - что там операторы нажимают при работе с прогой) загружаеш - тоже - то что нажимается в программе не перехватывается. Почему? Что перехватить надо, что бы узнать?


Дата: Сен 9, 2004 18:43:08

вешай запись в файл на int28h


Дата: Сен 10, 2004 12:21:15

ChelL
„При вызове из чистого DOS - клавиши не перехватывает, и когда программу одну (есть тут нужная прога - из за неё весь сыр-бор и начался - надо узнать - что там операторы нажимают при работе с прогой) загружаеш - тоже - то что нажимается в программе не перехватывается. “
Ты перехватываешь INT 16 - это не самый верхний уровень.
Есть еще INT 9 - прерывание от клавиатуры.
Вот при его перехвате точно в файл писать нельзя.
А чтобы узнать где и чем - SOFTICE и вперед.
Кстати можно просто висеть на таймере и
смотреть буфер клавиатуры :
40:001a 2 Addr of keyboard buffer head
(keystroke at that addr is next)
40:001c 2 Address of keyboard buffer tail
40:001e 32 Keyboard buffer. BIOS stores
keystrokes here (head and tail
point to addresses from 041eH
to 043dH inclusive).
Правда некоторые проги, работающие по INT 9,
делают свой буфер. Тут опять нужен SoftIce.


Дата: Сен 10, 2004 16:21:44

А если так сделать:
перехватить 9 прерывание и заносить клавиши в буфер. Перехватить прерывание таймера и в нём записывать файл?


Дата: Сен 10, 2004 21:15:16

Еще немного и я сяду сам писать эту прогу :)

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.063