(Як) чи можу я змінити час, поки заставка запуститься з командного рядка?


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

Якщо це допоможе вам, будь ласка, скасуйте питання ;-)

Відповіді:


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 для спроби. Дякую
Мауг каже відновити Моніку

1
Відредаговано, щоб, сподіваюся, працювали й інші часи
Gjordis

+1 Ну, це мстивість. Я бачу, що це оновлення ключа реєстру, але коли я клацну правою кнопкою миші на робочому столі (або перейдіть через панель керування) і виберіть "пероналізувати", на графічному інтерфейсі все ще відображається 5 хвилин. Якщо я встановив 10 секунд через реєстр, заставка не запускається через 10 секунд (а то й декількох хвилин). Якщо я встановив 1 хвилину в графічному інтерфейсі, він запускається через 1 хвилину (і він оновлює реєстр правильно).
Мауг каже, що повернемо Моніку

Можливо, він має дійсне значення
-range

+1 Я використав варіацію у вашій відповіді та опублікував її у q qorious. Дякуємо за вашу допомогу
Мауг каже, що поверніть Моніку

1

Насправді такий підхід (через реєстр) не працює до перезавантаження . Єдиний спосіб зробити це без перезавантаження ПК - це використання API:

https://www.pcreview.co.uk/threads/utility-to-temporary-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 каже, що відновити Моніку

1
Я навіть приміряв ftp-сервери, але результату немає. Я знайшов вихідний код VB для цієї мети ( freevbcode.com/ShowCode.asp?ID=504 ), але я не в змозі створити і поділити exe.
Олександр

Будь-яка ідея, яка версія VB (я думаю, VN 6)?
Мауг каже, що повернемо Моніку

1
Так, це VB6. Вибачте за мою пізню відповідь.
Олександр
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.