Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: Расчет координат
Nikanr
Отправлено: 23 Июля, 2020 - 21:02:06
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 231
Дата рег-ции: Март 2019  
Репутация: 5




Подскажите как рассчитать координаты для WM_LBUTTONUP, WM_MOUSEMOVE и WM_LBUTTONDOWN отправляя сообщения через sendmessage?

P:S работаю с Nox 6.6.1.1

(Отредактировано автором: 23 Июля, 2020 - 21:06:05)

 
 Top
Zireael
Отправлено: 24 Июля, 2020 - 01:54:23
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4449
Дата рег-ции: Нояб. 2017  
Репутация: 585




CODE:
#define WM_LBUTTONUP 514
#define WM_LBUTTONDOWN 513
#define WM_MOUSEMOVE 512

win w=window (-1, "Edit", window (-1, "Notepad", -1)); // блокнот

mouseleft_down(w, 20, 10); // зажать левую кнопку в координатах 20 10
sleep(200);
mouse_move(w, 20, 300); // переместить курсор в координаты 20 300
sleep(200);
mouseleft_up(w, 20, 300); // отпустить левую кнопку в координатах 20 300


function mouseleft_down(win w, int x, int y)
{
sendmessage(WM_LBUTTONDOWN, 1, x+y*65536, w);
}

function mouseleft_up(win w, int x, int y)
{
sendmessage(WM_LBUTTONUP, 0, x+y*65536, w);
}

function mouse_move(win w, int x, int y)
{
sendmessage(WM_MOUSEMOVE, 0, x+y*65536, w);
}
 
 Top
Nikanr
Отправлено: 24 Июля, 2020 - 10:03:27
Post Id



Пользователь
Специалист


Покинул форум
Сообщений всего: 231
Дата рег-ции: Март 2019  
Репутация: 5




Zireael , Спасибо, работает. Еще хотел спросить про MK_LBUTTON: эмулятор воспринимает перемещения мыши в фоне (как и в игре), но если мы хотим переместить какого-нибудь персонажа на новую позицию, то перемещение с помощью WM_MOUSEMOVE работает только если мы предварительно поставим флаг MK_LBUTTON в WM_MOUSEMOVE с тем же флагом в WM_LBUTTONDOWN, а когда мы отпускаем клавишу, то она отпускается в начальных координатах в которых мы зажимали клавишу, но не в тех что указывали при вызове WM_LBUTTONUP.

Функция примерно такая:
CODE:
#define WM_LBUTTONUP 514
#define WM_LBUTTONDOWN 513
#define WM_MOUSEMOVE 512
#define MK_LBUTTON 1


function mouse_move(win w,int xs,int ys,int xf,int yf){

sendmessage(WM_LBUTTONDOWN, MK_LBUTTON, xs+ys*65536, w);

pause(300);

sendmessage(WM_MOUSEMOVE, MK_LBUTTON, xf+yf*65536, w);

pause(300);

sendmessage(WM_LBUTTONUP, 0, xf+yf*65536, w);
}


Можно ли как-то это исправить?
(Добавление)
Если добавить MK_LBUTTON в WM_LBUTTONUP, то лкм не отпускает

(Отредактировано автором: 24 Июля, 2020 - 10:06:45)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by