1

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

Доброго времени суток.
Имеется полностью рабочий скрипт, но его работу замораживает экранная заставка (скринсейвер), которая запускается согласно настройке ОС.
Пока скрипт ждёт в игровом окне нужного цвета (PixelGetColor), компьютер бездействует и через определенное время запускается экранная заставка.
На экранной заставке, естественно, нужного цвета нет и скрипт никаких действий дальше не делает, ожидая нужный пиксель.
Есть ли какая-то команда, которая бы не давала компьютеру запускать заставку пока работает скрипт?
Или увеличить время запуска экранной заставки, например, на 10 минут и не морочить голову?

#SingleInstance
;#InstallKeybdHook
#NoEnv
#UseHook off
#MaxThreadsPerHotkey 1
#MaxThreadsBuffer On

DetectHiddenText, on
DetectHiddenWindows, on
Process, Priority, , Realtime

;:::::::::::::: Auto Tower Run :::::::::::::::::

WinWait, Summoners War, Nox, , ,
;WinWait,ahk_class Qt5QWindowIcon
WinActivate, Summoners War, Nox, , 
WinMove, Summoners War, Nox, , , 1024, 600
;WinExist("Summoners War")
WinGetPos, , , 1024, 600
WinMove, (A_ScreenWidth/2)-(1920/2), (A_ScreenHeight/2)-(1200/2)
sleep 400
Mouseclick, , 	570, 540
sleep 300
Mouseclick, , 	310, 510
sleep 300
Mouseclick, ,	500, 490
sleep 300
Mouseclick, ,	850, 420
sleep 300
MouseMove, 	350, 310

repeat:
 
PixelGetColor, color , 210, 310, BGR
 if color = 0x091E2D
    {
	sleep 200
	Mouseclick, ,	500, 460
	sleep 1200
	PixelGetColor, color , 210, 310, BGR
 	 if color = 0x091E2D
		{
			Mouseclick, , 	500, 460
			sleep 1500
			Mouseclick, , 	500, 460
			sleep 200
			Mouseclick, , 	330, 330
			sleep 300
			Mouseclick, , 	850, 420	
		}
	 else
		{	
			Mouseclick, , 	330, 330
			sleep 300
			Mouseclick, , 	850, 420
		}
    }
Else
    {
        Sleep, 50
	Goto, repeat
    }
Goto, repeat

;:::::::::::::::::::::::::::::::::::::::::::::::::

return
^E::edit
^R::Reload
^P::Pause
^X::ExitApp

Спасибо за внимание.

Я не Мастер, я только учусь...

2

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

Попробуйте так:

SPI_SETSCREENSAVEACTIVE := 0x11, flags := (SPIF_UPDATEINIFILE := 1) | (SPIF_SENDCHANGE := 2)

$F1:: DllCall("SystemParametersInfo", "UInt", SPI_SETSCREENSAVEACTIVE, "UInt", false, "Ptr", 0, "UInt", flags)
$F2:: DllCall("SystemParametersInfo", "UInt", SPI_SETSCREENSAVEACTIVE, "UInt", true , "Ptr", 0, "UInt", flags)

F1 — отключить заставку, F2 — включить.

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