1

Я пытаюсь создать программу, которая позволит вам выключить или отправить компьютер в спящий режим после определенного пользователем времени.

У меня не было проблем с выключением компьютера, но я не могу отправить его в спящий режим (например, через 60 минут)

У меня есть команда, чтобы отправить компьютер в спящий режим, но мне трудно установить время, в течение которого программа ожидает, прежде чем это произойдет:

powercfg -h выкл. и запуск / мин. "C:\WINDOWS\System32\rundll32.exe PowrProf.dll, SetSuspendState 0,1,0 & ping -n 3 127.0.0.1> nul & powercfg -h вкл. и выйти

Пожалуйста, укажите мне в правильном направлении.

1 ответ1

1

Ваш вопрос не имеет ничего общего с python, как команда, которую вы дали в командной строке в Windows, включая временный таймер. Просматривая код, который вы показали, это просто набор команд командной строки, связанных с &. , ,

powercfg -h off & start /min "" C:\WINDOWS\System32\rundll32.exe PowrProf.dll,SetSuspendState 0,1,0 & ping -n 3 127.0.0.1 > nul & powercfg -h on & exit

Разбивая это, команда делает:

  1. powercfg -h off : отключает спящий режим
  2. start /min "" C:\WINDOWS\System32\rundll32.exe PowrProf.dll,SetSuspendState 0,1,0 - я не уверен на 100%: переводит компьютер в спящий режим
  3. ping -n 3 127.0.0.1 > nul : это обычный взлом таймера для Windows, где в основном вводится 3-секундная задержка; Я предполагаю, что это связано с некоторыми проблемами синхронизации, когда система выходит из спящего режима, так как эта команда не будет работать, пока вы не проснетесь
  4. powercfg -h on : повторно включает гибернацию
  5. exit : выход из командного файла.

Так что здесь нет задержки. , , чтобы добавить задержку в python, вы можете использовать функцию сна модуля времени. Некоторый пример кода будет что-то вроде:

import time
# Wait 10 seconds before running the next command
delay = 10
time.sleep(delay)
print "hi . . . it's been {0} seconds!".format(delay)

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