13

Я хочу сделать командный файл, который будет спать мой компьютер после определенного периода времени.

Самая близкая вещь, которую я нашел, - это поместить ее в режим ожидания, но, похоже, она работает не так, как кнопка сна на моей клавиатуре (более длительная загрузка, при нажатии мыши не просыпается). Есть идеи? Будет ли проще в Python или C #?

Упомянутый выше менее идеальный метод вызывает это в командной строке cmd:

Rundll32.exe powrprof.dll,SetSuspendState

7 ответов7

25

Просто команда

rundll32.exe powrprof.dll,SetSuspendState

Есть ли спящий режим системы, но если вы пишете это:

rundll32.exe powrprof.dll,SetSuspendState 0,1,0

И отключите спящий режим командой:

powercfg -hibernate off

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

Пакетный таймер:

timeout /t 1200
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

Где 1200 - секунды, что означает, что через 20 минут пакетная команда будет запускать команду сна.

При желании вы можете предотвратить отмену обратного отсчета (если вы нажмете любую клавишу в окне пакета):

timeout /t 1200 /nobreak
rundll32.exe powrprof.dll,SetSuspendState 0,1,0

Небольшой HOWTO о пробуждении с помощью мыши:

Перейдите: Пуск -> Панель управления -> Мышь.

альтернативный текст

В окне « Свойства мыши» щелкните вкладку « Оборудование » и выберите мышь в списке устройств. Как правило, здесь указывается только одна мышь, но это зависит от оборудования, подключенного к вашему компьютеру. Когда вы выбрали свою мышь из списка, нажмите кнопку Свойства .

альтернативный текст

Теперь в окне « Свойства» для мыши нажмите кнопку « Изменить настройки» на вкладке « Общие ».

альтернативный текст

В открывшемся окне перейдите на вкладку « Управление питанием » и установите флажок « Разрешить этому устройству активировать компьютер». Нажмите кнопку ОК в этом окне и нажмите кнопку ОК в окнах свойств мыши, которые все еще открыты. Отныне вы можете вывести Windows 7 из спящего режима, нажав кнопку мыши или переместив мышь.

альтернативный текст

2
shutdown /h

будет переводить компьютер в спящий режим (хотя не уверен насчет приостановки).

1

Рабочий раствор!
Мне пришлось использовать утилиту PsShutdown чтобы обеспечить нормальный сон (основная проблема заключается в том, что SetSuspendState не позволяет тайме пробуждения разбудить машину). Мой пакетный файл для сна состоит из 1 простой строки:

PsShutdown -d -t 2
0

.NET на помощь. Это решение переводит компьютер в спящий режим без необходимости изменения конфигурации компьютера (отключения гибернации). Запустите эту команду в пакетном режиме:

powershell.exe -command "Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Application]::SetSuspendState([System.Windows.Forms.PowerState]::Suspend, $false, $false)"

Вы можете использовать либо ::Suspend для сна, либо ::Hibernate (как работают другие ответы). Документация для SetSuspendState.

Как System.Windows.Forms имен форм не загружается по умолчанию (это происходит в Powershell ISE), для этого нужно сначала загрузить сборку.

оригинальный ответ

0

Просто создайте командный файл и вставьте следующие строки:

7200 = 2 hours

@echo off
timeout /t 7200 /nobreak
powercfg -h off
rundll32.exe powrprof.dll,SetSuspendState 0,1,0
powercfg -h on
0

Вы можете попробовать SetSystemPowerState, чтобы избежать необходимости отключать Hiberanate.

rundll32.exe kernel32.dll, SetSystemPowerState

Обратите внимание, что добавление 1,0 или 1 0 или даже выполнение Rundll32.exe powrprof.dll, SetSuspendState 0 0 1 или Rundll32.exe powrprof.dll, SetSuspendState 0,0,1, что аргументы (0,0,1) ничего не значат.

Powrprof.dll, SetSuspendState не анализирует аргументы стиля rundll32 и, следовательно, игнорирует их. Вот почему вы должны отключить спящий режим.

0

На этот вопрос уже дан ответ.

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

Смотрите следующее:

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

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