(Как) я могу изменить время до появления заставки из командной строки?

10

Как заголовок спрашивает (Windows 7). (Как) я могу изменить время до появления заставки из командной строки? Это вообще возможно?

Обычно я доволен настройкой 5 минут, но иногда я хочу сделать это дольше. Я хотел бы, чтобы две длины были привязаны к горячим клавишам (я знаю, как это сделать).

Полагаю, я мог бы записать два макроса и использовать их, но мне просто было интересно, есть ли какие-либо параметры командной строки (включая обновления реестра), которые я могу использовать, чтобы сообщить Windows, чтобы запускать заставку после X минут бездействия.

(обратите внимание, я не хочу запускать заставку сразу; я хочу изменить время ожидания Windows перед запуском)

Заранее спасибо.


[Ответ] Я наконец-то использовал вариант ответа от @Gjordis, но все его заслуги.

Я не понял, зачем нам нужно 3 операции: добавить, удалить, затем переименовать и сократить это до двух.

Поскольку я хочу привязать к горячей клавише, мне нужно выполнить две команды в одном. Обычно команды можно разделять точкой с запятой и вводить их в одну строку (например dir c:;dir d:). Это дало ошибки в regкоманде, поэтому в итоге у меня есть два командных файла. Содержание одинаковое, меняется только продолжительность.

Что странно - значение правильно записывается в реестр, но Панель управления / Персонализация / Заставка не всегда обновляет свой графический интерфейс. Тем не менее, я проверил, и заставка ведет себя как ожидалось.

@echo off
reg delete "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /f
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 180 /f

Если это поможет вам, пожалуйста, задайте вопрос ;-)

Mawg говорит восстановить Монику
источник

Ответы:

7
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 600 /f

Значение 600 в секундах, = 10 минут Интересно, что, как указано, это работает только в первый раз. При следующем изменении вам нужно создать новый ключ, например:

reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOutTemp /t REG_SZ /d 300 /f

Затем удалите старую

reg delete "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut /t REG_SZ /d 600 /f

Затем скопируйте новый на правильное имя

reg copy "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOutTemp "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveTimeOut

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

Документация REG здесь: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/reg.mspx?mfr=true

Gjordis
источник
Это работает :-) Только в первый раз :-(, вероятно, потому что у меня не было записи в реестре в первый раз, поэтому можно добавить, но, возможно, потребуется изменить впоследствии? +1 за попытку. Спасибо
Mawg говорит восстановить Monica
1
Отредактировано, чтобы надеяться работать и в другое время
Gjordis
+1 Ну, это круто. Я вижу, что он обновляет раздел реестра, но когда я щелкаю правой кнопкой мыши по рабочему столу (или иду через панель управления) и выбираю «peronalize», он все равно показывает 5 минут в графическом интерфейсе. Если я установлю 10 секунд через реестр, заставка не запустится через 10 секунд (или даже несколько минут). Если я установил 1 минуту в графическом интерфейсе, то он запускается через 1 минуту (и корректно обновляет реестр).
Mawg говорит восстановить Monica
Возможно, у него есть действительный диапазон значений
Gjordis
+1 Я использовал вариант вашего ответа и разместил его в приведенном выше вопросе. Спасибо за вашу помощь
Mawg говорит восстановить Monica
1

На самом деле, этот подход (через реестр) не работает до перезагрузки . Единственный способ сделать это без перезагрузки ПК - использовать API:

https://www.pcreview.co.uk/threads/utility-to-temporarily-change-the-screensaver.2321339/#post-7442568

но API нельзя использовать из командной строки, т.е. VB-скрипт. Вот причина:

http://forums.codeguru.com/showthread.php?31534-VBScript-and-API&p=86696#post86696

Это можно сделать, вызвав утилиту SetScrTimeout.exe (из первой ссылки), но, к сожалению, эта маленькая утилита больше не существует в Интернете.

Александар
источник
Спасибо за это. Возможно, SetScrTimeout.exe может быть найден на обратном пути машины ? Я не могу проверить из-за брандмауэра компании, но он должен быть там - все остальное есть ;-)
Mawg говорит восстановить Monica
1
Я даже пробовал на ftp серверах, но безрезультатно. Я нашел исходный код VB для этой цели ( freevbcode.com/ShowCode.asp?ID=504 ), но я не могу создать и поделиться exe-файлом.
Александар
Любая идея, какая версия VB (я предполагаю, VN 6)?
Mawg говорит восстановить Monica
1
Да, это VB6. Извините за мой поздний ответ.
Александар