Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 25.12.2020
Сообщений: 15

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

25.12.2020, 14:17. Показов 4448. Ответов 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
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru