2

Мне нужно нажимать любую бесполезную клавишу (например, F11) каждые 5 минут или меньше, чтобы держать окна активными (если они стали неактивными в течение 5 минут, они будут заблокированы).

Но мне нужно, чтобы клавиша была нажата на рабочем столе (чтобы она не влияла на открытые окна).

я пытался

Loop
{
   ControlSend, {F11}, WindowsApplication1
   Sleep, 100000
}

но не похоже на работу.

Благодарю.

1 ответ1

1

Почему вы хотите отправить F11 на рабочий стол?
Если ваш компьютер не спит, вы можете использовать следующий скрипт:

#SingleInstance, force
#Persistent
SetTimer, NoSleep, 30000
Return

NoSleep:
 DllCall( "SetThreadExecutionState", UInt,0x80000003 )
Return

От Microsoft:

Функция SetThreadExecutionState
Позволяет приложению информировать систему о том, что оно используется, тем самым предотвращая переход системы в спящий режим или отключение дисплея во время работы приложения.


Также возможно эмулировать действие мыши, чтобы система не спала
(если приведенный выше скрипт как-то не работает у вас):

Loop {
    Sleep, 30000
    MouseMove, 1, 0, 1, R  ;Move the mouse one pixel to the right
    MouseMove, -1, 0, 1, R ;Move the mouse back one pixel
}

Так что не нужно было бы имитировать собственно нажатие клавиши.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .