В игре требуется перетаскивать экран. Реализовано таким образом: зажимается левая кнопка мыши, перемещается на новую позицию, отпускается левая кнопка мыши.
Проблема состоит в том, если мы перемещаем эту мышку резко, а не плавно как например со включенной функцией enablerealmouse используя при этом mousemove, mouseup и так далее, то перетаскивания экрана не происходит
А насколько я знаю что-то по типу enablerealmouse не работает в sendmousemove. Работа с mousemove и так далее не подходит, т.к теряется фоновый режим работы.
Не хватает такого параметра как плавное перетаскивание мыши в sendmousemove в кибор, ну или можно как-нибудь решать по другому эту проблему?
P:S игра в эмуляторе BlueStack
1. Nikanr - 08 Октября, 2019 - 10:29:29 - перейти к сообщению
2. ivantu - 08 Октября, 2019 - 10:42:27 - перейти к сообщению
Пробовали sendmousetransfer?
3. Nikanr - 08 Октября, 2019 - 11:09:46 - перейти к сообщению
ivantu , Это все работает, не в этом дело. Мышь перемещается резко, а мне нужно (если брать пример с паинта) что бы было плавно (по типу enablerealmouse), т.к в игре нельзя настолько резко перемещать мышь, иначе не будет перемещения по экрану, а будет просто клик в 2х местах
4. ivantu - 08 Октября, 2019 - 11:24:05 - перейти к сообщению
sendmousetransfer(LEFT, 200, 250, 300, 350, 0.02, wind);
0.02 - скорость перемещения
0.02 - скорость перемещения
5. Nikanr - 08 Октября, 2019 - 11:48:40 - перейти к сообщению
Потестил, работает странно. Не передается зажатие лкм почему-то, хотя если поставить корды на кнопку и передачу зажатия лкм, все работает как часы
А если я непосредственно зажимаю лкм сам в игре, то перемещение идет
код который использую
(Добавление)
Пробовал убрать up и down и в sendmousetransfer параметр -1 заменить на LEFT. Тоже самое
(Добавление)
Пробовал увеличить паузу и кликнуть пару раз для передачи фокуса (хотя и так стоит активат) 0 реакции так-же
А если я непосредственно зажимаю лкм сам в игре, то перемещение идет
код который использую
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;
}
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 реакции так-же
6. Nikanr - 09 Октября, 2019 - 01:55:46 - перейти к сообщению
Фиг его знает вообщем почему он не зажимает лкм
7. Nikanr - 09 Октября, 2019 - 10:47:16 - перейти к сообщению
Есть какие-нибудь api функции что бы передать зажатие левой мыши?
8. Zireael - 09 Октября, 2019 - 17:41:23 - перейти к сообщению
Цитата:
Есть какие-нибудь api функции что бы передать зажатие левой мыши?
Выделить текст в блокноте (Отобразить)
Вместо sendmessage можно postmessage попробовать.
9. Nikanr - 10 Октября, 2019 - 09:17:34 - перейти к сообщению
Поигрался с send/post. Пока окно не активируешь, клики не передаются (тоже самое с клавиатурой). Да и ладно уже
Если кому интересно, в самом nox можно сделать бинд клавиши на перетаскивание по экрану) хотя бы с активацией окна работает и то ладно
Если кому интересно, в самом nox можно сделать бинд клавиши на перетаскивание по экрану) хотя бы с активацией окна работает и то ладно