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

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

2 ответа2

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

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 (из первой ссылки), но, к сожалению, эта небольшая утилита больше не существует в Интернете.

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