sparrtak |
Отправлено: 30 Ноября, 2021 - 15:50:29
|
Наблюдатель
Покинул форум
Сообщений всего: 30
Дата рег-ции: Окт. 2021
Репутация: 0
|
Доброго времени суток уважаемые, хотел спросить возможно простой вопрос, но никак не могу придумать и/или найти решение,в эмуляторах андроид к примеру, нужно приблизить что-то или отдалить, то-есть одновременно зажать две точки левой кнопкой миши и двигать в противоположную стороны, или к центру, кто-то возможно скажет что там есть возможность сделать через кнопки внутри эмулятора(к примеру NOX)но и там нужно одновременно зажать Ctrl+прокрутить среднюю кнопку на несколько позиций, а прокрутка как в учебнике у меня вообще почему-то не работает, возможно кто-то уже встречал такую проблему и как то решил, или есть идеи? |
|
|
Ilya001 |
Отправлено: 30 Ноября, 2021 - 16:10:45
|
Эксперт
Покинул форум
Сообщений всего: 459
Дата рег-ции: Май 2020
Репутация: 23
|
Вручную активируйте окно эмулятора после запуска кода.
Попробуйте этот код(без привязки к окну, и без CTRL):
CODE:pause(3000); //пауза можно убрать
beep(700, 200); //звук можно убрать
mousedown(LEFT, 512, 512); //зажимаем левую кнопку мыши. Координаты укажите сами, где кликать
mouse(WHEEL, 2); //прокручиваем на 2 щелчка вверх. Если указать -2 то вниз
pause(1000); //пауза
mouseup(LEFT, 512, 512); //отпускаем левую кнопку мыши
А этот код с использованием клавиши CTRL(тоже без привязки к окну):
CODE:pause(3000);
beep(700, 200);
keydown(17); //зажимаем клавишу CTRL
mouse(WHEEL, 2); //прокручиваем
keyup(17); //отпускаем CTRL
pause(1000); (Отредактировано автором: 30 Ноября, 2021 - 16:20:10) |
|
|
sparrtak |
Отправлено: 30 Ноября, 2021 - 16:59:44
|
Наблюдатель
Покинул форум
Сообщений всего: 30
Дата рег-ции: Окт. 2021
Репутация: 0
|
Ilya001 пишет: Вручную активируйте окно эмулятора после запуска кода.
Попробуйте этот код(без привязки к окну, и без CTRL):
CODE:pause(3000); //пауза можно убрать
beep(700, 200); //звук можно убрать
mousedown(LEFT, 512, 512); //зажимаем левую кнопку мыши. Координаты укажите сами, где кликать
mouse(WHEEL, 2); //прокручиваем на 2 щелчка вверх. Если указать -2 то вниз
pause(1000); //пауза
mouseup(LEFT, 512, 512); //отпускаем левую кнопку мыши
А этот код с использованием клавиши CTRL(тоже без привязки к окну):
CODE:pause(3000);
beep(700, 200);
keydown(17); //зажимаем клавишу CTRL
mouse(WHEEL, 2); //прокручиваем
keyup(17); //отпускаем CTRL
pause(1000);
странно но работает,не постоянно но да,а есть способ полной автоматизации без ручной активации окна?
В любом случае уже спасибо,хоть что-то.
(Добавление)
Тоесть у меня есть окно и именно в нем нужно работать.Обычно я делал указатель на контрол,возможно где то в учебнике есть про это,я что-то пропустил? |
|
|
Ilya001 |
Отправлено: 30 Ноября, 2021 - 17:37:18
|
Эксперт
Покинул форум
Сообщений всего: 459
Дата рег-ции: Май 2020
Репутация: 23
|
Цитата: pause(4000);
int x, y;
getmouse(x, y);
win w=getwindow(0, x, y);
activate(w);
pause(1000);
keydown(17, 0, 0, w); //зажимаем клавишу CTRL
mouse(WHEEL, 2, 0, w); //прокручиваем
keyup(17, 0, 0, w); //отпускаем CTRL
pause(1000);
Запустите код, наведите курсор мыши на нужное окно, после чего кибор получить название окно по этим координатам(int x, y), и активирует окно. Все эти действии вы должны успеть сделать за 4сек, но вы можете поставить любую паузу.(Отредактировано автором: 30 Ноября, 2021 - 17:38:14) |
|
|
sparrtak |
Отправлено: 01 Декабря, 2021 - 13:48:52
|
Наблюдатель
Покинул форум
Сообщений всего: 30
Дата рег-ции: Окт. 2021
Репутация: 0
|
Zireael пишет: Цитата: одновременно зажать две точки левой кнопкой миши
А вы сами так можете сделать? В системе один курсор.
конечно могу,к примеру на ноутбуке есть тачпад и сделать это елементарно |
|
|
sparrtak |
Отправлено: 01 Декабря, 2021 - 14:03:46
|
Наблюдатель
Покинул форум
Сообщений всего: 30
Дата рег-ции: Окт. 2021
Репутация: 0
|
Zireael пишет: Тачпад тут причём? Перечитайте свой же вопрос:
Цитата: одновременно зажать две точки левой кнопкой миши
ну так в тачпаде и есть кнопки,ну возможно я не так сформулировал вопрос,как мне приблизить или отдалить как на тачпаде ноутбука?
(Добавление)
Ilya001 пишет: Цитата: pause(4000);
int x, y;
getmouse(x, y);
win w=getwindow(0, x, y);
activate(w);
pause(1000);
keydown(17, 0, 0, w); //зажимаем клавишу CTRL
mouse(WHEEL, 2, 0, w); //прокручиваем
keyup(17, 0, 0, w); //отпускаем CTRL
pause(1000);
Запустите код, наведите курсор мыши на нужное окно, после чего кибор получить название окно по этим координатам(int x, y), и активирует окно. Все эти действии вы должны успеть сделать за 4сек, но вы можете поставить любую паузу.
к сожелению не работает,совсем,или я что то не так делаю,запустил как вы указали не работает,немного переработал:
win w = window (-1, -1, -1, -1, 540, 960, -1);
if (w==0){messagebox ("No window" }//goto er;}
pause(2000);
activate(w);
pause(1000);
keydown(17, 0, 0, w);
mouse(WHEEL, 2, 0, w);
keyup(17, 0, 0, w);
pause(1000);
но так же не работает |
|
|
|