1

Тема: AHK:Проверка на активность клавиатуры\мыши

Доброго времени суток

CoordMode, Mouse, Screen
    SetTimer, MouseWatch, 1000
MouseWatch:
    MouseGetPos, x, y
    if (x = x_old) && (y = y_old)
         counter++
    else counter =
    if counter = 120
    IfWinExist GTA:SA:MP
         MyFunc(), counter := 0
    x_old := x, y_old := y
    return
    
  
MyFunc()
пошел процесс

к проверке на активность мыши нужно добавить и проверку на активность клавиатуры, с чем и возникли проблемы

2

Re: AHK:Проверка на активность клавиатуры\мыши

Код подразумевает запуск функции каждые 2 минуты неактивности пользователя.
Есть соответствующая встроенная переменная A_TimeIdlePhysical. значения равное 120000 равнозначно двум минутам простоя.

3 (изменено: [CM]White, 2012-10-11 14:54:17)

Re: AHK:Проверка на активность клавиатуры\мыши

creature.ws пишет:

Код подразумевает запуск функции каждые 2 минуты неактивности пользователя.
Есть соответствующая встроенная переменная A_TimeIdlePhysical. значения равное 120000 равнозначно двум минутам простоя.

Хотелось бы увидеть на примере моего кода

4 (изменено: creature.ws, 2012-10-11 15:10:04)

Re: AHK:Проверка на активность клавиатуры\мыши

[CM]White пишет:

Хотелось бы увидеть на примере моего кода

Хотелось бы увидеть ваши варианты решения, использующие A_TimeIdlePhysical

#Persistent
timer := 1000
timeout := 120000
SetTimer, CheckTimeIdle, % timer
return

CheckTimeIdle:
    if (A_TimeIdlePhysical >= timeout && Mod(A_TimeIdlePhysical, timeout) < timer)
        MsgBox Простаиваем очередные 2 минуты
    return

5

Re: AHK:Проверка на активность клавиатуры\мыши

Hydrogenium пишет:

AHK: Как определить движение мыши и любой клик клавиатуры ?

Есть ли простой код для этого ?

6

Re: AHK:Проверка на активность клавиатуры\мыши

Подскажите, как по приведённому выше коду можно выполнить разные действия? Если таймаут выше 2 мин -выполнить

Process, Close, progB.exe
Run, progA.exe

А, в случае если таймаут меньше 2 мин:

Process, Close, progA.exe
Run, progB.exe

#Persistent
timer := 1000
timeout := 120000
SetTimer, CheckTimeIdle, % timer
return

CheckTimeIdle:
if (A_TimeIdlePhysical >= timeout){
	ToolTip, stoim = %A_TimeIdlePhysical%
	Process, Close, progB.exe
    Run, progA.exe
} else {
	ToolTip, ne stoim = %A_TimeIdlePhysical%
	Process, Close, progA.exe
    Run, progB.exe
}
return

Думал сделать через else, но выполняется условие каждую секнду из-за SetTimer и не как не могу придумать как заставить скрипт не запустить каждую итерацию мою программу.

7 (изменено: svoboden, 2017-06-26 20:27:13)

Re: AHK:Проверка на активность клавиатуры\мыши

Остановить таймер после выполнения условия можно так:

#Persistent
timer = 100
timeout = 60000
H = 1000

SetTimer, CheckTimeIdle, % timer
return

CheckTimeIdle:
H--
if (A_TimeIdlePhysical > timeout)
MsgBox работает
    if H = 0
    SetTimer, CheckTimeIdle, off
return

Дальше сами, используйте два таймера, например.