Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Скролл мыши

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

1. CEMEH_054 - 17 Июня, 2019 - 03:00:39 - перейти к сообщению
Доброго времени. Есть желание реализовать скролл мыши по определенным параметрам.
к примеру:
if (выполнено такое действие) то скролл мыши вверх
else скролл мыши в низ

Пробую реализовать такое действие при скролле мыши:

win w=window (-1, -1, window ("Название окна", "UnityWndClass", -1));

mousewheel(-2); // скролл мыши на 2 щелчка в низ

function mousewheel(int delta)
{
sendmessage(WM_MOUSEWHEEL, delta);
}

Подскажите, что не так и как сделать правильно.
Скролл в активном окне.
2. Zireael - 17 Июня, 2019 - 03:21:50 - перейти к сообщению
 Цитата:
Скролл в активном окне.

CODE:
#define MOUSEEVENTF_WHEEL 2048
external(VOID, "mouse_event", "mouse_event", "user32.dll");

sleep(2000);
mousewheel(-2); // на 2 щелчка вниз
sleep(2000);
mousewheel(3); // на 3 вверх

function mousewheel(int delta)
{
mouse_event(MOUSEEVENTF_WHEEL, 0, 0, delta * 120, 0);
}

Скролл в неактивном окне (не во всех приложениях сработает):
CODE:
win w=window (-1, "Edit", window (-1, "Notepad", -1)); // окно

int x=200; // координаты, в которых выполнить скролл
int y=300;

mousewheel(w, x, y, -2); // на 2 щелчка вниз
sleep(2000);
mousewheel(w, x, y, 3); // на 3 щелчка верх

function mousewheel(win w, int x, int y, int delta)
{
sendmessage(WM_MOUSEWHEEL, delta*120*65536, x+y*65536, w);
}
3. CEMEH_054 - 17 Июня, 2019 - 03:37:41 - перейти к сообщению
Zireael , Спасибо большое.
А что означает 2048?
#define MOUSEEVENTF_WHEEL 2048
4. Zireael - 17 Июня, 2019 - 03:56:41 - перейти к сообщению
 Цитата:
А что означает 2048?
#define MOUSEEVENTF_WHEEL 2048

Это объявление константы.
CODE:
#define MOUSEEVENTF_WHEEL 2048
messagebox(MOUSEEVENTF_WHEEL);

Так можно понять что означает число. Просто флагов может быть несколько, например:
 Цитата:
external(VOID, "mouse_event", "mouse_event", "user32.dll" );
mouse_event(34816, 0, 0, 120, 0); // Так не понятно что означает 34816.

 Цитата:
#define MOUSEEVENTF_WHEEL 2048
#define MOUSEEVENTF_ABSOLUTE 32768
external(VOID, "mouse_event", "mouse_event", "user32.dll" );
mouse_event(MOUSEEVENTF_WHEEL | MOUSEEVENTF_ABSOLUTE, 0, 0, 120, 0);

А так можно открыть описание функции https://docs.microsoft.com/en-us...user-mouse_event и посмотреть какие флаги указаны и что они обозначают.
5. CEMEH_054 - 17 Июня, 2019 - 04:24:30 - перейти к сообщению
Zireael , Спасибо
6. Femidko - 23 Мая, 2020 - 10:12:11 - перейти к сообщению
Добрый вечер!
А не подскажете, в чем может быть причина такой ошибки?
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
7. Zireael - 23 Мая, 2020 - 10:17:41 - перейти к сообщению
 Цитата:
А не подскажете, в чем может быть причина такой ошибки?

Нужен весь код.
8. Femidko - 23 Мая, 2020 - 11:16:43 - перейти к сообщению
Все как Вы писали:

CODE:
#define MOUSEEVENTF_WHEEL 2048
#define MOUSEEVENTF_ABSOLUTE 32768

external(VOID, "mouse_event", "mouse_event", "User32.dll");

function MouseWheel(int delta)
{
mouse_event(MOUSEEVENTF_WHEEL | MOUSEEVENTF_ABSOLUTE, 0, 0, delta * 120, 0);
}

function Roll(win _win) {
activate(_win);
sleep(2000);
mousemove(20, 180, _win);
sleep(random(100, 500));
mouse(LEFT, random(20, 50), random(160, 200), 0, _win)
sleep(random(100, 500));
mouse(LEFT, random(20, 50), random(160, 200), 0, _win)
sleep(random(100, 500));

MouseWheel(-10);

}
9. Zireael - 23 Мая, 2020 - 11:29:35 - перейти к сообщению
 Цитата:
mouse(LEFT, random(20, 50), random(160, 200), 0, _win)

Нет ; вконце.
CODE:
mouse(LEFT, random(20, 50), random(160, 200), 0, _win);
10. Femidko - 23 Мая, 2020 - 11:45:15 - перейти к сообщению
 Zireael пишет:
Нет ; вконце.

господи, как мог пропустить.... благодарствую, в очередной раз. сбило с толку, что на строчку с эвентом колесика ругалось наверн
(Добавление)
Не помогло. Сделал чистый эксперимент:
CODE:

#define MOUSEEVENTF_WHEEL 2048
#define MOUSEEVENTF_ABSOLUTE 32768
external(VOID, "mouse_event", "mouse_event", "User32.dll");
mouse_event(MOUSEEVENTF_WHEEL | MOUSEEVENTF_ABSOLUTE, 0, 0, delta * 120, 0);


то же самое

Powered by ExBB FM 1.0 Final