Задать вопрос
@Askush

Как предотвратить засыпание компьютера при помощи python?

Демонстрационный компьютер со статистикой всё время засыпает. Проблема в том, что на уровне домена каждые два часа накатывается политика управления электропитанием, которая сбивает все локальные настройки на стандартные. Я попытался использовать для этого скрипт на Python, который эмулировал движение мышью, но это не принесло результата
Есть ли какое-то решение?
import pyautogui
screenWidth, screenHeight = pyautogui.size()
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)
pyautogui.moveTo(screenWidth / 3, screenHeight / 3)
  • Вопрос задан
  • 581 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
@m0nym
Обратиться к сисадмину, администрирующему доменные политики.
Объяснить ситуацию и попросить отключить засыпание для этого конкретного компьютера.
Ответ написан
Ezhyg
@Ezhyg
shutdown -a
Задание для планировщика - отмена выключения
<?xml version="1.0" encoding="UTF-16" ?> 
- <Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
- <RegistrationInfo>
  <Date>2018-07-09T11:57:08.396045</Date> 
  <Author>Тостер\ЁжЫГ</Author> 
  </RegistrationInfo>
- <Triggers>
- <EventTrigger>
  <Enabled>true</Enabled> 
  <Subscription><QueryList><Query Id="0" Path="System"><Select Path="System">*[System[Provider[@Name='USER32'] and EventID=1074]]</Select></Query></QueryList></Subscription> 
  </EventTrigger>
- <EventTrigger>
  <Enabled>true</Enabled> 
  <Subscription><QueryList><Query Id="0" Path="System"><Select Path="System">*[System[Provider[@Name='USER32'] and EventID=1076]]</Select></Query></QueryList></Subscription> 
  </EventTrigger>
- <EventTrigger>
  <Enabled>true</Enabled> 
  <Subscription><QueryList><Query Id="0" Path="System"><Select Path="System">*[System[Provider[@Name='USER32'] and (EventID=1074 or EventID=1076)]]</Select></Query></QueryList></Subscription> 
  </EventTrigger>
  </Triggers>
- <Principals>
- <Principal id="Author">
  <UserId>f-1\ЁжЫГ</UserId> 
  <LogonType>InteractiveToken</LogonType> 
  <RunLevel>LeastPrivilege</RunLevel> 
  </Principal>
  </Principals>
- <Settings>
  <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> 
  <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries> 
  <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> 
  <AllowHardTerminate>true</AllowHardTerminate> 
  <StartWhenAvailable>false</StartWhenAvailable> 
  <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> 
- <IdleSettings>
  <StopOnIdleEnd>true</StopOnIdleEnd> 
  <RestartOnIdle>false</RestartOnIdle> 
  </IdleSettings>
  <AllowStartOnDemand>true</AllowStartOnDemand> 
  <Enabled>true</Enabled> 
  <Hidden>false</Hidden> 
  <RunOnlyIfIdle>false</RunOnlyIfIdle> 
  <WakeToRun>false</WakeToRun> 
  <ExecutionTimeLimit>P3D</ExecutionTimeLimit> 
  <Priority>7</Priority> 
  </Settings>
- <Actions Context="Author">
- <Exec>
  <Command>shutdown</Command> 
  <Arguments>-a</Arguments> 
  </Exec>
  </Actions>
  </Task>

Ответ написан
Комментировать
@alekssamos
Программист любитель
Вот это точно должно работать.
https://www.autoitscript.com/site/autoit/downloads/
#NoTrayIcon
If WinExists("antisleep") Then Exit 1
AutoItWinSetTitle("antisleep")
#include <Timers.au3>
While 1
	Sleep(1000)
	If _Timer_GetIdleTime() >= 1000 * 60 * 60 Then
		MouseMove(MouseGetPos(0)+2, MouseGetPos(1)+2)
		MouseMove(MouseGetPos(0)-2, MouseGetPos(1)-2)
	EndIf
WEnd
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы