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

Ваш аккаунт

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

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

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

Контроль перемещения мыши

33K
28 ноября 2007 года
Falling_Tear
2 / / 28.11.2007
Здравствуйте.
У меня задание на курсовик по Ассемблеру:

Разработать программу, которая бы с заданным интервалом времени собирала в буфер и записывала в файл информацию о координатах положения мыши.

Времени нет сильно углубляться - у меня научная работа в совершенно другой области... Может, кто-нибудь сможет помочь?
Мной написан "сырой" вариант программы: http://fallingtear.pisem.net/flashcard/kp4.asm

Проблемы с самого начала - с открытия файла для записи. Вроде бы всё как в справочниках, но генерирует ошибку. :(
274
28 ноября 2007 года
Lone Wolf
1.3K / / 26.11.2006
Первое что брсилось в глаза,это перехват 8го прерывания. Этого делать нельзя, так как оно отвечает и за время иза многие другие устройства, специально для программистов существует, так называемое "Пользывалтельское прерывание таймера" № 1c, вот его и нужно перехватывать.
А насчет файла, то какая ОСь и какая файловая система?
261
28 ноября 2007 года
ahilles
1.5K / / 03.11.2005
насколько я понял исходник написан под DOS. и я уверен в том что автор запускает всё это дело из под Windows, разумеется под Windows он не будет работать. Контролировть мышь в Windows можно только через хуки.
1.6K
28 ноября 2007 года
Vov4ick
476 / / 01.02.2007
неа, нтвдм"ом мышь более мене сносно эмулируется.
Таймер использовать не нужно, нужно повесить свою процедуру обработки событий и в ней читать координаты.
33K
28 ноября 2007 года
Falling_Tear
2 / / 28.11.2007
Ну, вроде как я из режима виртуального х86 запускаю...
Кстати, ещё ошибку при попытке ассемблирования с ключом /t выдаёт:
"Cannot generate COM file: data below initial CS:IP defined"
Какой-то ещё, кажется, ключ нужен для ассембл-я СОМ-проги в 32-разрядном коде?
Прошу прощения за своё невежество, но углубляться в Ассемблер просто нет времени, хотя есть желание...
1.6K
28 ноября 2007 года
Vov4ick
476 / / 01.02.2007
Переменные можно располагать не где попало, а в каком-либо сегменте. Например в сегменте кода сразу после выхода из программы, чтобы на них не прошло управление.
ком-файл делают так
TASM FILE.ASM
TLINK /T FILE.OBJ
для TASM, для других не помню. введи /?
Не понятен вопрос насчёт 32-разрядного кода
274
28 ноября 2007 года
Lone Wolf
1.3K / / 26.11.2006
в com-программе всего один сегмент! сегмент кода, остальные сегменты отсутсвуют, естественно будет ругаться. на обьявленые DS
Далее, повторяю снова, если ты хочеш перехватить прерывания от таймера, что ты и делаеш перехватывая 8ое прерывание, то нужно перехватывать 1c, которое вызывается стандартным обработиком 8-го..
если хочеш использывать 32х разрядные регистры, не ключь нужен, а деректива .386
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог