![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 25.10.2011
Сообщений: 4
|
![]()
Всем привет!
Препод дал не большое задание: написать программку на fasm, которая передвигает курсор мыши на нажатию на одну из клавиш-стрелок. Например, нажали клавишу "вверх", курсор мыши передвинулся вверх. По идее, всё просто: - в бесконечном цикле ожидаем нажатие клавиши. - определяем, какая из клавиш-стрелок была нажата. - суммируем/вычитаем текущие координаты курсора в соответствии с нажатой клавишей и переводим курсор на новую позицию. Просто в теории, в реализации чуть сложнее. - Подскажите, как определить, какая клавиша была нажата? - Если не ошибаюсь, для установки координат курсора используется функция setCursorPos, можно пример её использования? |
![]() |
![]() |
![]() |
#2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
банально, но факт, через хуки
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
![]()
Перехват нажатия клавиши.
На сколько я понимаю можно через int 16h, это сервис БИОС для работы с клавиатурой.
Спеши медленно.
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 25.10.2011
Сообщений: 4
|
![]()
Я не силён в низкоуровневом программировании и ассемблере, потому и создал тему.
Не могли бы вы подробнее рассказать о перехватах нажатых клавиш? |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 28.05.2011
Сообщений: 309
|
![]() Код:
в al ascii код .
Спеши медленно.
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 02.07.2011
Сообщений: 38
|
![]()
Asmar, в задании говорится, что нужно двигать курсор мыши, используя системный вызов SetCursorPos. Сл-но, программными bios-прерываниями здесь не обойтись. Т.к. это простая лаба, требуется, скорее всего, создать простое Window-приложение.
Программа, по заказу: 1. показывает, как обрабатывать сообщения 2. показывает, как работает в ассемблере SetCursorPos Код:
![]() Правда, код для masm, т.к. fasm не знаю. Шаблон создания простого 32-разрядного Windows-приложение см. Пирогов. Assembler для Windows. Программа реагирует на нажатие клавиши W. Можно попробовать через скан-код. Хранится также в сообщение в lParam. Для 32-разрядных приложений лучше скачать Win32.hlp (описание системных вызовов на английском). Сайт тут небольшой нашёл, глянь туда http://www.vsokovikov.narod.ru/ (то же, только на русском). |
![]() |
![]() |
![]() |
#7 |
Регистрация: 25.10.2011
Сообщений: 4
|
![]()
Проблема с получением текущих координат курсора мыши - решена.
Привожу код: Код:
Последний раз редактировалось AlphaGh0St; 27.10.2011 в 17:16. |
![]() |
![]() |
![]() |
#8 |
Регистрация: 25.10.2011
Сообщений: 4
|
![]()
Ну вот и всё, задача решена.
Ниже привожу исходный код. Всем спасибо за помощь! Код:
Последний раз редактировалось AlphaGh0St; 27.10.2011 в 19:16. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 02.07.2011
Сообщений: 38
|
![]()
GetCursorPos. Не подумал о нём.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Курсор мыши над формой | 8adim | Общие вопросы Delphi | 8 | 07.02.2011 09:43 |
Затормаживается курсор мыши в WIndows XP SP3 ENG Ogirinal | Altera | Windows | 2 | 28.10.2009 13:57 |
курсор мыши у чужого окна | STRELOK-2007 | Общие вопросы Delphi | 1 | 06.08.2009 23:17 |
Курсор мыши | gfksx | Общие вопросы C/C++ | 4 | 21.04.2009 13:36 |
Почему не обновляется курсор мыши? | HunterMan | Win Api | 2 | 06.06.2008 01:39 |