;Кодировка исходного текста в UTF-8
;Скрипт не выгружается до явного определения.
#Persistent
;Запрет повторного запуска - разрешён.
#SingleInstance Force
;Безусловная установка хука клавиатуры для NumLock CapsLock ScrollLock (устанавливаем по желанию)
#InstallKeybdHook
;Влючаем в непереключаемое состояние NumLock = On, до конца работы скрипта
SetNumLockState, AlwaysOn ;AlwaysOn/AlwaysOff
;Влючаем в непереключаемое состояние CapsLock = Off, до конца работы скрипта
SetCapsLockState, AlwaysOff ;AlwaysOn/AlwaysOff
;Влючаем в непереключаемое состояние ScrollLock = Off, до конца работы скрипта
SetScrollLockState, AlwaysOff ;AlwaysOn/AlwaysOff
;Точка выхода
OnExit, lblBhopExit
;*****Начальные установки*****
WinName := "игра"; Имя окна игры полностью
;Секция горячих клавиш
keyBhop := "Space"
keyBhopExit := "Ctrl & Esc"
HotKey, %keyBhopExit%, lblBhopExit, On
HotKey, %keyBhop%, lblBhop, On
;Тут запустить таймер проверки игры
cRatePeriodSec := 1000 ;1000ms = 1 секунда
cRatePeriodMin := 60*cRatePeriodSec ;60000ms = 1 минута
cRatePeriodProc := 5*cRatePeriodMin ;Частота таймера 5 минут
vPIDName := "Game.exe" ;Имя процесса игры
SetTimer lTimerProc, %cRatePeriodProc% ;Запускаем таймер
Return
;========================Резидентная часть скрипта===============================================
SetTitleMatchMode, 3
#If WinActive(WinName)
#UseHook, On
Thread, NoTimers
Critical
lblBhop:
tmp_ThisHotkey := A_ThisHotkey
HotKey, %keyBhop%, lblBhop, Off ;Защита от повторного входа
;Используем команду SetKeyDelay Delay, PressDuration
;Delay: -1 (отсутствия паузы), 0(наименьшей возможной паузы)
;PressDuration(длительность нажатия): -1(отсутствия паузы/по умолчанию), 0(наименьшей возможной паузы)
SetKeyDelay -1, -1 ;У меня SetKeyDelay 10, 10
While (GetKeyState(tmp_ThisHotkey, "P"))
{
Send {WheelUp}
Sleep 5
}
HotKey, %keyBhop%, lblBhop, On
Return
Critical , Off
Thread, NoTimers, false
#UseHook, Off
#IfWinActive
;*********************************************
;*****Точка выхода/завершения скрипта*****
lblBhopExit:
ExitApp
;*****************************************
;*****Проверка существования игры(ТАЙМЕР)*****
lTimerProc:
If (fnCheckExistProc(vPIDName))
Return
Goto lblBhopExit
;*********************************************
;---------------------------Функция проверки существования процесса-----------------------------
; Вход (имя процесса полное, т.е. exe-файл)
; Ответ True/False = процесс работает(существует)/не работает(не существует)
fnCheckExistProc(ByRef vPIDName)
{
Thread, NoTimers
; Проверяем существование процесса vPIDName
Process, Exist, %vPIDName%
if (ErrorLevel = 0)
vRet := False ; Программа и/или скрипт не запущен
Else
vRet := True
Thread, NoTimers, false
Return vRet ; Выходим с ответом
}
;-----------------------------------------------------------------------------------------------
;================================================================================================