(Come) posso cambiare il tempo fino allo scatto dello screensaver dalla riga di comando?


10

Come richiesto dal titolo (Windows 7). (Come) posso cambiare il tempo fino allo scatto dello screensaver dalla riga di comando? È anche possibile?

Normalmente sono contento di un'impostazione di 5 minuti, ma a volte voglio allungarlo. Vorrei che le due lunghezze fossero associate ai tasti di scelta rapida (so come farlo).

Immagino di poter registrare due macro e usarle, ma mi chiedevo solo se ci sono opzioni da riga di comando (inclusi gli aggiornamenti del registro) che posso usare per dire a Windows di avviare lo screen saver dopo X minuti di inattività.

(tieni presente che non voglio avviare immediatamente lo screen saver; voglio cambiare il tempo che Windows attenderà prima di avviarlo)

Grazie in anticipo.


[Risposta] Alla fine ho usato una variante della risposta di @Gjordis - ma tutto il merito va a lui.

Non ho visto perché avevamo bisogno di 3 operazioni: aggiungere, eliminare, quindi rinominare e ridurlo a due.

Poiché desidero associare un tasto di scelta rapida, devo eseguire due comandi in uno. Normalmente, è possibile separare i comandi con un punto e virgola ed emetterli su una riga (ad es dir c:;dir d:.). Ciò ha dato errori con il regcomando, quindi alla fine ho due file batch. I contens sono identici, cambia solo la durata.

Una cosa strana: il valore è scritto correttamente nel registro, ma Pannello di controllo / Personalizza / Screen saver non aggiorna sempre la sua GUI. Tuttavia, ho testato e lo screen saver si comporta come previsto.

@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

Se questo ti aiuta, per favore vota la domanda ;-)

Risposte:


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

Il valore 600 è in secondi, = 10 minuti È interessante notare che, come indicato, funziona solo la prima volta. Alla prossima modifica, devi creare una nuova chiave in questo modo:

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

Quindi eliminare quello vecchio

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

Quindi copia quello nuovo con il nome giusto

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

Spero che funzioni, e non distruggi il tuo computer, ma dal momento che non avevi questo valore di registro, non penso che cancellarlo possa essere così orribile.

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


Funziona :-) Solo la prima volta :-( presumibilmente perché non avevo una voce di registro la prima volta, quindi potrei aggiungere, ma potrebbe essere necessario modificare successivamente? +1 per provare. Grazie
Mawg dice di ripristinare Monica

1
A cura di spero di funzionare anche altre volte
Gjordis

+1 Bene, questo è strano. Vedo che sta aggiornando la chiave del Registro di sistema, ma quando faccio clic con il pulsante destro del mouse sul desktop (o vado dal pannello di controllo) e scelgo "peronalizza", mostra ancora 5 conio sulla GUI. Se imposto 10 secondi tramite registro, lo screen saver non si avvia dopo 10 secondi (o anche pochi minuti). Se imposto 1 minuto nella GUI, inizia dopo 1 minuto (e aggiorna il registro correttamente).
Mawg dice di ripristinare Monica

Forse ha un valore valido -gamma
Gjordis

+1 Ho usato una variante della tua risposta e l'ho pubblicata nella domanda sopra. Grazie per l'aiuto
Mawg dice di ripristinare Monica

1

In realtà, questo approccio (tramite registro) non funziona fino al riavvio . L'unico modo per farlo senza riavviare il PC è utilizzare un'API:

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

ma le API non possono essere utilizzate da una riga di comando, ad esempio script VB. Ecco il motivo:

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

Potrebbe essere fatto chiamando l'utilità SetScrTimeout.exe (dal primo collegamento), ma sfortunatamente, questa piccola utility non esiste più su Internet.


Grazie per quello Forse SetScrTimeout.exe può essere trovato sulla via del ritorno ? Non riesco a controllare a causa del firewall dell'azienda, ma dovrebbe essere lì - tutto il resto è ;-)
Mawg dice di ripristinare Monica il

1
Ho anche provato su server ftp, ma nessun risultato. Ho trovato un codice sorgente VB a tale scopo ( freevbcode.com/ShowCode.asp?ID=504 ), ma non sono in grado di creare e condividere un exe.
Aleksandar,

Qualche idea su quale versione di VB (sto indovinando VN 6)?
Mawg dice di ripristinare Monica il

1
Sì, è VB6. Mi scuso per la risposta tardiva.
Aleksandar,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.