1 (изменено: [CM]White, 2015-04-03 16:15:14)

Тема: Как узнать производились ли клики пользователя в указанном окне?

Доброго времени суток.
Набросал простенький бот для игры производящий клик с движением раз в 4 минуты вне зависимости от действий пользователя, необходимо же внести проверку:
- Если в окне "BlueStacks App Player" за последние 3 минуты производился клик мыши, то скрипт ожидает 3 минуты и повторяет проверку
- Если В окне "BlueStacks App Player" не было кликов мыши от пользователя за последние 3 минуты, то скрипт выполняет основную свою задачу:



Label1:  ; название потока
BlockInput, MouseMove ; блокируем движения мыши 
MouseGetPos, X, Y ; получаем координаты мыши 
WinGet, active_id, ID, A ; узнаем какое окно активно
    WinShow BlueStacks App Player
    WinActivate BlueStacks App Player
WinWait, BlueStacks App Player ; ждем запуска и разворачиваем игру
WinMove, 0, 0 ; перемещаем окно игры в верхний левый угол
MouseClick, left, 564, 423 ; клик мыши по кнопке рестарта в игре
sleep 300 ; пауза 300мс
MouseMove, A_ScreenWidth/2, A_ScreenHeight/2, 0 ; перемещаем курсор мыши в центр экрана
sleep, 200 ; пауза 200мс
Click, down
MouseMove, -70, -90, 7, R
sleep, 300
MouseMove, 70, 90, 7, R
Click, up ; перемещение карты в сторону и обратно
WinActivate, ahk_id %active_id% ; возвращаем раннее активное приложение
BlockInput, MouseMoveOff ; разблокировали мышь
MouseMove, X, Y ; вернули мышь на прошлый координаты пользователя
Return ; конец потока

2 (изменено: [CM]White, 2015-04-04 11:37:21)

Re: Как узнать производились ли клики пользователя в указанном окне?

Если невозможно, то проверка
-Если окно было активно за последние 3 минуты, ждем 3 минуты и повторная проверка пока не будет выявлен второй пункт
-Если окно не было активно за последние 3 минуты, то label1

3

Re: Как узнать производились ли клики пользователя в указанном окне?

Можно такой путь проделать:
При каждом разворачивании окна "BlueStacks App Player" время данного действия заносится в переменную %time% и перед началом "label1" проверяем разницу во времени переменной %time% и нужного интервала в 3 минуты. Если время в переменной %time% больше 3 минут, то запукается "label1", если меньше тогда новая сверка значения переменной через 3минуты...
Только вот как это усуществить грамотнее

4

Re: Как узнать производились ли клики пользователя в указанном окне?

Title = Безымянный — Блокнот
Pause = 2 ; секунды
WinWait % Title 
SetTimer label1, -%Pause%000
Return

#If WinActive(Title)
~LButton:: SetTimer label1, -%Pause%000
#If 
    
label1:
    MsgBox,,, % A_ThisLabel, 0.2
    SetTimer label1, -%Pause%000
    Return
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5

Re: Как узнать производились ли клики пользователя в указанном окне?

Всё оказалось элементарно просто, как же сам не догадался... Крайне благодарен!

6

Re: Как узнать производились ли клики пользователя в указанном окне?

А зачем SetTimer в метке таймера? По-моему, лишний.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: serzh82saratov, 2015-04-09 14:45:32)

Re: Как узнать производились ли клики пользователя в указанном окне?

Возможно действия в метке будут длительными,  а отсчёт паузы нужен по их окончанию.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8 (изменено: teadrinker, 2015-04-09 14:57:30)

Re: Как узнать производились ли клики пользователя в указанном окне?

А, ясно, если это действительно так нужно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder