(Jak) mogę zmienić czas do uruchomienia wygaszacza ekranu z wiersza poleceń?

10

Jak pyta tytuł (Windows 7). (Jak) mogę zmienić czas do uruchomienia wygaszacza ekranu z wiersza poleceń? Czy to w ogóle możliwe?

Zwykle jestem zadowolony z ustawienia 5 minut, ale czasami chcę to wydłużyć. Chciałbym, aby dwie długości były powiązane z klawiszami skrótu (wiem, jak to zrobić).

Chyba mógłbym nagrać dwa makra i korzystać z nich, ale zastanawiałem się, czy są jakieś opcje wiersza poleceń (w tym aktualizacje rejestru), których mogę użyć, aby powiedzieć Windowsowi, aby uruchomił wygaszacz ekranu po X minutach bezczynności.

(Uwaga: nie chcę od razu uruchamiać wygaszacza ekranu; chcę zmienić czas oczekiwania systemu Windows przed uruchomieniem)

Z góry dziękuję.


[Odpowiedź] W końcu użyłem wariacji na odpowiedź z @Gjordis - ale cały kredyt należy mu.

Nie rozumiem, dlaczego potrzebujemy 3 operacji: dodaj, usuń, a następnie zmień nazwę i zredukuj to do dwóch.

Ponieważ chcę połączyć się ze skrótem, muszę wykonać dwa polecenia w jednym. Normalnie można rozdzielić polecenia średnikiem i wydać je w jednym wierszu (np dir c:;dir d:.). To dało błędy w regpoleceniu, więc na koniec mam dwa pliki wsadowe. Contens są identyczne, zmienia się tylko czas trwania.

Dziwne - wartość jest poprawnie zapisywana w rejestrze, ale Panel sterowania / Personalizuj / Wygaszacz ekranu nie aktualizuje GUI. Jednak przetestowałem i wygaszacz ekranu zachowuje się zgodnie z oczekiwaniami.

@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

Jeśli to ci pomoże, głosuj na pytanie ;-)

Mawg mówi, że przywróć Monikę
źródło

Odpowiedzi:

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

Wartość 600 jest w sekundach, = 10 minut Co ciekawe, jak wskazano, działa to tylko za pierwszym razem. Przy następnej zmianie musisz utworzyć nowy klucz:

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

Następnie usuń stary

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

Następnie skopiuj nowy do właściwej nazwy

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

Mam nadzieję, że to działa i nie niszczycie swojego komputera, ale ponieważ nie macie tej wartości rejestru, nie sądzę, że usunięcie może być takie okropne.

Dokumentacja REG tutaj: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/reg.mspx?mfr=true

Gjordis
źródło
To działa :-) Tylko za pierwszym razem :-( przypuszczalnie dlatego, że nie miałem wpisu rejestru po raz pierwszy, więc mogę dodać, ale może trzeba będzie później zmodyfikować? +1 za próbę. Dzięki
Mawg mówi o przywróceniu Moniki
1
Edytowany, aby, mam nadzieję, działał również w innym czasie
Gjordis
+1 Cóż, to jest trange. Widzę, że aktualizuje klucz rejestru, ale kiedy kliknę pulpit prawym przyciskiem myszy (lub przejdę przez panel sterowania) i wybiorę „peronalizuj”, nadal wyświetla 5 mennic w interfejsie GUI. Jeśli ustawię 10 sekund przez rejestr, wygaszacz ekranu nie uruchomi się po 10 sekundach (lub nawet kilku minutach). Jeśli ustawię 1 minutę w GUI, to rozpocznie się po 1 minucie (i poprawnie zaktualizuje rejestr).
Mawg mówi o przywróceniu Moniki
Być może ma on prawidłowy zakres wartości
Gjordis
+1 Użyłem odmiany twojej odpowiedzi i opublikowałem ją w powyższym pytaniu. Dzięki za pomoc
Mawg mówi o przywróceniu Moniki
1

W rzeczywistości takie podejście (poprzez rejestr) nie działa do momentu ponownego uruchomienia . Jedynym sposobem na to bez ponownego uruchamiania komputera jest użycie interfejsu API:

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

ale interfejsów API nie można używać z wiersza poleceń, tj. skryptu VB. Oto powód:

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

Można to zrobić, wywołując narzędzie SetScrTimeout.exe (z pierwszego łącza), ale niestety to małe narzędzie nie istnieje już w Internecie.

Aleksandar
źródło
Dziękuję za to. Być może SetScrTimeout.exe można znaleźć na drodze powrotnej ? Nie mogę sprawdzić z powodu firmowej zapory ogniowej, ale powinna tam być - wszystko inne jest ;-)
Mawg mówi o przywróceniu Moniki
1
Próbowałem nawet na serwerach ftp, ale bez rezultatu. Znalazłem w tym celu kod źródłowy VB ( freevbcode.com/ShowCode.asp?ID=504 ), ale nie jestem w stanie utworzyć ani udostępnić pliku exe.
Aleksandar
Masz pojęcie, która wersja VB (zgaduję VN 6)?
Mawg mówi o przywróceniu Moniki
1
Tak, to jest VB6. Przepraszam za spóźnioną odpowiedź.
Aleksandar