0 / 0 / 0
Регистрация: 25.12.2020
Сообщений: 15

Движение мыши

25.12.2020, 14:17. Показов 4628. Ответов 26

Студворк — интернет-сервис помощи студентам
У меня есть код на ахк который использует винапи вроде как
Хочу перевести его на с# или с++ но сам я точно не справлюсь
Или же в этих языках есть похожая вещь
Помогите пожалуйста

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#NoEnv
SendMode Input
 
~F8::Suspend
~End::ExitApp
~F11::Reload
 
~RButton & ~LButton::
Loop 1
 
   If GetKeyState("LButton", "RButton") {
        
        mouseXY(-17,17,1)
    }
    else
    return
 
Return
 
mouseXY(x,y,s)
{
   dx:=0,dy:=0, dx0:=0, dy0:=0
   loop % s
   {
      DllCall("mouse_event",uint,1,int
              ,dx0:=Round(dx := dx+x/s - dx0),int
              ,dy0:=Round(dy := dy+y/s - dy0),uint,0,int,0)
   }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.12.2020, 14:17
Ответы с готовыми решениями:

Движение мыши: происходит зацикливание
Здравствуйте. Помогите разобраться, что не так. На входе координаты по x,y и скорость speed, курсор должен плавно доехать от текущего...

Как можно имитировать движение мыши (С++)
Какими методами С++ можно имитировать движение мыши в IE. Ссылки ОЧЕНЬ приветствуются. Я перерыл, но нормального обьяснения ненашел, все...

Движение курсора мыши должно плавно менять цвет фона окна.
точнее 2 1) Движение курсора мыши должно плавно менять цвет фона окна. Левый верхний угол - красный цвет фона. Правый верхний -...

26
0 / 0 / 0
Регистрация: 25.12.2020
Сообщений: 15
25.12.2020, 15:23  [ТС]
Студворк — интернет-сервис помощи студентам
Laborant666, Блин, а я в расте собирался тестить, поэтому я и не хотел чтобы что-то осталось в саму программу
Можете дать какое-нибудь направление в сторону движения курсора через драйвер как вы упомянули
0
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
25.12.2020, 16:30
lubitellll, в игре можно пользоваться вообще не WinApi, а двигать курсор. Он в игре всё равно скрыт. Тот код, что дам вам я лишь показывает, как работать с WinApi, минимальный функционал. Я не собираюсь вам всю логику писать, тут уж сами, я в разработке читов участвовать не хочу
0
0 / 0 / 0
Регистрация: 25.12.2020
Сообщений: 15
25.12.2020, 16:32  [ТС]
Laborant666, я покапался и мне кажется там идёт дескриптер в машинный код потому что сами макросы записаны в файле amc
0
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
25.12.2020, 17:04
lubitellll,
Если будут переносы строки - исправьте. Скопировал из среды разработки сюда - строки перенеслись. По поводу дескриптора окна - порой их бывает много у приложения и тут надо методом перебора искать то окно, с которым работаешь ты, как пользователь. На примере моём, Memu принимает ввод с мыши через главное окно. Paint например через одно из дочерних, через главное окно, самое верхнее в spy ++, родительское - ничего не принимает. Тут иногда нужно погадать поперебирать.
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <Windows.h>
 
void mouseClick(HWND hwnd, int x, int y);
 
int main() {
 
    int x, y;
    x = 200; 
    y = 200;
    //координаты от верхнего левого угла окна
 
    HWND hMemu = FindWindow(NULL, L"(MEmu 1)"); 
    //ловим дескриптор окна по его имени, нужно узнать что б можно было в окно отправлять события
    //если имя окна неизвестно его можно посмотреть в spy++
 
    mouseClick(hMemu, x, y);
 
    return 0;
}
 
void mouseClick(HWND hwnd, int x, int y) {
    SendMessage(hwnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(x, y)); 
    //посылаем событие, что кнопка мыши нажата в определенных координатах
 
    Sleep(5);                                                        
    //задержка для того, что б винда\приложение успело заметить, что мышь нажата. На всякий случай
 
    SendMessage(hwnd, WM_LBUTTONUP, 0, MAKELPARAM(x, y));            
    //посылаем событие, что кнопка отжата, иначе может случиться ошибка и мышь будет зажата всегда
}


Добавлено через 4 минуты
lubitellll, для движения мыши есть отдельное событие. Привязываете его ко времени и перемещаете куда вам нужно за то время, что вам нужно
1
0 / 0 / 0
Регистрация: 25.12.2020
Сообщений: 15
25.12.2020, 23:30  [ТС]
Laborant666, Спасибо
0
0 / 0 / 0
Регистрация: 25.12.2020
Сообщений: 15
28.12.2020, 07:29  [ТС]
Laborant666, А вы не знаете, есть ли код чтобы просто посылать движения в активное окно, а не искать его через spy++
0
 Аватар для Laborant666
208 / 101 / 20
Регистрация: 30.06.2020
Сообщений: 848
28.12.2020, 12:06
lubitellll, А в чем проблема сделать автоматическое получение HWND окна игры? Имя то у неё не меняется
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.12.2020, 12:06

Движение мыши (переполнение)
if (capture) { if (moved) { c.vx = mCur.x-mPrev.x; c.vy = mCur.y-mPrev.y } ReleaseCapture(); ...

Перехватить движение мыши за пределами окна
Хочу сделать чтобы изменение положения и размеров формы происходило в старом стиле, я перехватил WM_NCLBUTTONDOWN, но при выходе мыши за...

Как отследить движение мыши и нажатие клавиш?
Надо определить, сколько времени бездействует ПК. Как отследить движение мыши и нажатие клавиш?

Выбивает ошибку при движение колесика мыши
При движение колесика мыши выбивает ошибку. Помогите исправить. class Application { public: Application(HINSTANCE...

Отследить движение мыши в окне, созданном при помощи mciSendString
Здравствуй те Господа !!! Возник вопрос - допустим есть некое чужое окно (скажу сразу это не вирус , а окно созданное при открытии .avi...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

Новые блоги и статьи
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru