Форум программистов, компьютерный форум, киберфорум
Assembler: Windows/protected mode
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 7

Работа с мышью: программное перемещение курсора

22.02.2010, 14:59. Показов 5383. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, недавно начал изучать Assembler. Столкнулся в проблемой, использую FASM, пытаюсь подвигать мышкой, ничего не получается, вот код:
Assembler
1
2
3
4
5
6
include 'E:\Must Have\Assembler\INCLUDE\win32ax.inc'
.code
start:
        invoke  Mouse_Event, MOUSEEVENTF_MOVE, 100, 100, NULL, NULL
        invoke  ExitProcess,0
.end start
Подозреваю что я просто не заинклудил необходимый файл, но другое дело я не знаю какой надо инклудить, помогите решить проблему

Вопрос даже скорее стоит в правильном применениее API функций, но то что я нашел в справке по API не указывает на файл необходимый к инклуду
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.02.2010, 14:59
Ответы с готовыми решениями:

Программное перемещение курсора мыши
Всем привет! У меня тут вопрос.... каким образ можно перемешать курсор мышака программно?

Не работает перемещение мышью
Перестало работать перемещение мышью, т.е. могу любой файл или папку открыть а перетащить или переместить перетаскиванием не получается,...

Перемещение Timage мышью
У меня на форме есть картинка как мне её перемещать мышкой? Заранее спасибо!

13
7 / 7 / 1
Регистрация: 22.07.2009
Сообщений: 104
22.02.2010, 18:07
Функция mouse_event оффициально устарела. Но это ладно. Я главного не понял, у тебя этот код скомпилировался или нет?
0
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 7
22.02.2010, 18:17  [ТС]
Цитата Сообщение от resource Посмотреть сообщение
Функция mouse_event оффициально устарела. Но это ладно. Я главного не понял, у тебя этот код скомпилировался или нет?
В том то и дело что не компилируется
P.S. Мне интересен любой способ управления мышью с помощью ассемблера.
0
 Аватар для Goodwin98
2537 / 833 / 10
Регистрация: 31.05.2009
Сообщений: 1,668
22.02.2010, 18:29
а так ?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
format PE GUI 4.0
entry start
 
include 'win32ax.inc'
 
section '.code' code readable executable
 
  start:
        invoke  mouse_event, MOUSEEVENTF_MOVE, 100, 100, NULL, NULL
        invoke  ExitProcess,0
 
 
section '.idata' import data readable writeable
 
  library kernel32,'KERNEL32.DLL',\
      user32,'USER32.DLL'
 
  include 'apia\kernel32.inc'
  include 'apia\user32.inc'
1
7 / 7 / 1
Регистрация: 22.07.2009
Сообщений: 104
22.02.2010, 18:35
Ну и заодно уже забудь про mouse_event. Используй SendInput
0
0 / 0 / 0
Регистрация: 22.02.2010
Сообщений: 7
24.02.2010, 07:14  [ТС]
О! Спасибо! Мышь теперь двигается . Щас посижу посижу и выдам новый вопрос про работу с мышью

Добавлено через 12 часов 39 минут
А как подвинуть мышью средствами Ассемблера? Тоесть сейчас же мы использовали запрос в апи, есть ли другой способ по мимо WinAPI?

Добавлено через 19 часов 49 минут
ап
0
 Аватар для semiono
161 / 18 / 0
Регистрация: 14.09.2010
Сообщений: 472
Записей в блоге: 6
30.10.2011, 08:22
Ну и как использовать этот SendInput ? Как например нажать VK_F5
Я, например, даже не знаю как UNIT в структурах указать.
0
Ушел с форума
Автор FAQ
 Аватар для Mikl___
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
31.10.2011, 09:57
Цитата Сообщение от Belfigor
А как подвинуть мышью средствами Ассемблера? Тоесть сейчас же мы использовали запрос в апи, есть ли другой способ по мимо WinAPI?
Belfigor
В ассемблере всё можно! Можно перехватывать сообщения которые драйвер мыши шлет операционной системе и самостоятельно перерисовывать курсор мыши в видеопамяти, но мой совет -- проще воспользоваться WinAPI...

Добавлено через 9 минут
Цитата Сообщение от semiono
Ну и как использовать этот SendInput ? Как например нажать VK_F5
Я, например, даже не знаю как UNIT в структурах указать.
semiono,
Такие вещи пишутся просто:
1) написал рабочую программу с Mouse_Event
2) запустил программу в OllyDbg и в том месте, где вызывается Mouse_Event нажал не на F8, а на F7 -- и ты уже внутри процедуры двигаешься пока не наткнешься на SendInput, заодно увидишь как ей передается VK_F5
3) Если продолжать давить на F7, то можно увидеть как внутри SendInput управление передается на int 2Eh или sysenter с передачей номера функции через EAX
0
0 / 0 / 0
Регистрация: 16.01.2012
Сообщений: 4
04.08.2012, 21:44
ребята кто может помочь с таким кодом, в общем нужно передвинуть курсор в координаты 800 800 и нажать левую кнопку мыши, дело в тои что на компе стоит прога которая перехватывает нажатия мыши тоесть отрубает апи, например в делфи перестает работать
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SetCursorPos(100,100);
           Mouse_Event(MOUSEEVENTF_ABSOLUTE or
              MOUSEEVENTF_LEFTDOWN,
              100,
              100,
              0,
              0);;
          {Эмулируем отпускание левой кнопки мыши}
           Mouse_Event(MOUSEEVENTF_ABSOLUTE or
              MOUSEEVENTF_LEFTUP,
              100,
              100,
              0,
              0);;
курсор перемещается а кликнуть уже не дает, тоже самое и на нажатия клавишь
Delphi
1
2
SendMessage(wnd, WM_KEYDOWN, VK_F2, 0);
SendMessage(wnd, WM_KEYUP, VK_F2, 0);
Думал вот через асм сделать он же вроде как модет кликнуть на кнопку так же как драйвер, какие есть варианты вообще?
0
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
06.08.2012, 13:44
Наверно единственный путь - это отрубить эту прогу, а потом уже Mouse_Event.
0
 Аватар для _lucius_
391 / 179 / 2
Регистрация: 14.03.2012
Сообщений: 443
06.08.2012, 19:39
Цитата Сообщение от murderer Посмотреть сообщение
Наверно единственный путь - это отрубить эту прогу, а потом уже Mouse_Event.
Ну почему же? Можно попытаться защитится от перехвата. Если перехват осуществляется путем замены адресов в таблице импорта, то можно неявно вызывать функции. Если сплайсинг, тогда можно вызвать функцию не от её начала. Или же спускаться ниже SendInput/sysenter или int 2Eh (если Win9x) [см. топик #8].
0
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
07.08.2012, 06:28
А если перехватывается GetMessage/PeekMessage?
0
 Аватар для _lucius_
391 / 179 / 2
Регистрация: 14.03.2012
Сообщений: 443
08.08.2012, 05:53
Цитата Сообщение от murderer Посмотреть сообщение
А если перехватывается GetMessage/PeekMessage?
Судя по тому, что korolariya написал, GetMessage перехватывается. Ну и что? Действуем аналогично.

Добавлено через 17 часов 51 минуту
Цитата Сообщение от _lucius_ Посмотреть сообщение
sysenter или int 2Eh (если Win9x)
Ошибочка. ) Int 2Fh (для WIn 9x), int 2Eh (для Win NT и Win 2k) и syscall (для Win XP).
0
4190 / 1838 / 221
Регистрация: 06.10.2010
Сообщений: 4,124
08.08.2012, 07:59
Я так понял, что надо отослать сообщение в чужую программу. Можно попробовать получить адрес оконной функции (GetWindowLong) и отослать ей нужное сообщение через CreateRemoteThread.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.08.2012, 07:59
Помогаю со студенческими работами здесь

Перемещение окон мышью
Здравствуйте. Помогите понять. В главном окне есть дочерние окна. Какой стиль задать, для возможности перемещать окно мышью? Или придётся...

Перемещение объекта мышью
Вот уже облазил весь форум, а понять причину не могу... При нажатии и передвижению мыши, примитив исчезает... #include...

Перемещение объекта мышью
Как можно заставить данный объект (эллипс) перемещаться при помощи мыши? Когда кнопка мыши зажата- объект перетаскивается (как ярлык в...

Перемещение скрола мышью
Доброго времени суток. Необходимо через WinApi нажать на скрол компонента и протянуть его постепенно сверху донизу. Теоретически все...

Перемещение объекта мышью
всем привет! нужно сделать перемещение объекта мышью по горизонтали, принцип знаю. при mousedown ставиться флаг, при mouseup флаг...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru