amp |
Отправлено: 24 Мая, 2019 - 15:14:38
|
Прохожий
Покинул форум
Сообщений всего: 20
Дата рег-ции: Май 2019
Репутация: 0
|
Доброго времени, такой незамысловатый кусочек кода для движения курсора мыши по спирали. Работает без нареканий, но когда пытаюсь завести параметр 7 и 8 в функцию mousetransfer для активации и привязки к определенному окну, возникает ошибка. Как быть?
CODE:int x1=400, y1=300, x2, y2, a=1.4, r1=0, phi=0;;
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int sx_KIB, sy_KIB;
start_();
m_KIB0: if(r1<23)
{
x2=x1+((a/6.28)*phi*cos(phi));
y2=y1+((a/6.28)*phi*sin(phi));
mousetransfer(-1, x1, y1, x2, y2, 10, 1);
x1=x2;
y1=y2;
r1++;
phi=phi+57.2956;
}
goto m_KIB0;
function start_()
{
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(0, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
sx_KIB=w_KIB.leftclient; sy_KIB=w_KIB.topclient;
} |
|
|
Zireael |
Отправлено: 24 Мая, 2019 - 15:21:45
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017
Репутация: 585
|
mousetransfer принимает 6 или 8 параметров, у вас 7.
Цитата: mousetransfer(LEFT, стартX, стартY, финишX, финишY, 0.02);
Первый параметр - какая кнопка. Может быть: LEFT, MIDDLE, RIGHT и -1. Если -1 , перемещать мышь не нажимая кнопки с заданной скоростью.
Второй и третий - экранные координаты зажатия кнопки и захвата.
Четвертый и пятый - экранные координаты куда тащить и где отпустить кнопку.
Шестой - дробное число. Скорость перетаскивания.
Так же возмажно вызвать эу функцию с 8 параметрами:
mousetransfer(LEFT, стартX, стартY, финишX, финишY, 0.02, 1, win wind);
Седьмой параметр - если 1 активировать окно, если 0 не активировать.
Восьмой - указатель на окно. Все координаты клиентские относительно окна wind.
Если восьмой параметр 0 или не найдено окно - экранные координаты.
Цитата: a=1.4
Переменная объявлена int, дробное число не запишется. |
|
|
amp |
Отправлено: 24 Мая, 2019 - 15:39:05
|
Прохожий
Покинул форум
Сообщений всего: 20
Дата рег-ции: Май 2019
Репутация: 0
|
Zireael пишет: mousetransfer принимает 6 или 8 параметров, у вас 7.
я по разному пробовал) ни с 7 ни с 8 не работает, про переменную спасибо - не заметил
(Добавление)
Kibor пишет: Используйте enablerealmouse
mousetransfer устарела.
Не могу найти описание функции, увидел в примерах.
if(r1<23)
{
x2=x1+((a/6.28)*phi*cos(phi));
y2=y1+((a/6.28)*phi*sin(phi));
enablerealmouse(1,0,0,0)
mousemove(x1,y1);
mousemove(x2,y2);
pause(0);
mouse(-1);
x1=x2;
y1=y2;
r1++;
phi=phi+57.2956;
}
Насколько я понимаю, конкретно для моего случая должно быть как то так. Но как привязаться к окну я все равно не понимаю. Координаты пользовательские. Как сделать относительно окна. |
|
|
Kibor |
Отправлено: 24 Мая, 2019 - 15:45:46
|
Эксперт
Просматривает форум
Сообщений всего: 8223
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
CODE:win w=window ("Безымянный — Блокнот", "Notepad", -1);
mousetransfer(LEFT, 10, 10, 125, 100, 0.02, 1, w);
работает
(Добавление)
amp пишет: mouse(-1);
?
(Добавление)
CODE:win w=window ("Безымянный — Блокнот", "Notepad", -1);
mousedown(LEFT, 10,10, 0, w);
enablerealmouse(1,0,0,0);
mouseup(LEFT, 125,100, 0, w); |
|
|
|