Nikanr |
Отправлено: 08 Октября, 2019 - 19:48:40
|
Специалист
Покинул форум
Сообщений всего: 231
Дата рег-ции: Март 2019
Репутация: 5
|
Потестил, работает странно. Не передается зажатие лкм почему-то, хотя если поставить корды на кнопку и передачу зажатия лкм, все работает как часы
А если я непосредственно зажимаю лкм сам в игре, то перемещение идет
код который использую
CODE:win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
start_();
activate(w_KIB);
sendmousedown(LEFT, 375, 210, w_KIB);
pause(200);
sendmousetransfer(-1, 375, 210, 50, 210, 0.001, w_KIB);
sendmouseup(LEFT, 50, 210, w_KIB);
function start_(){
pause(2000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(1, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
}
(Добавление)
Пробовал убрать up и down и в sendmousetransfer параметр -1 заменить на LEFT. Тоже самое
(Добавление)
Пробовал увеличить паузу и кликнуть пару раз для передачи фокуса (хотя и так стоит активат) 0 реакции так-же(Отредактировано автором: 08 Октября, 2019 - 19:55:11) |
|
|
Zireael |
Отправлено: 10 Октября, 2019 - 01:41:23
|
Эксперт
Покинул форум
Сообщений всего: 4456
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Есть какие-нибудь api функции что бы передать зажатие левой мыши?
Выделить текст в блокноте (Отобразить)CODE: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);
}
Вместо sendmessage можно postmessage попробовать. |
|
|
|