Como o título pede (Windows 7). (Como) posso alterar o tempo até que o protetor de tela comece a partir da linha de comando? Isso é possível?
Normalmente, estou feliz com uma configuração de 5 minutos, mas ocasionalmente quero prolongá-la. Gostaria dos dois comprimentos vinculados às teclas de atalho (eu sei como fazer isso).
Acho que poderia gravar duas macros e usá-las, mas me perguntei se existem opções de linha de comando (incluindo atualizações de registro) que posso usar para dizer ao Windows para iniciar o protetor de tela após X minutos de inatividade.
(observe que não desejo iniciar o protetor de tela imediatamente; desejo alterar o tempo que o Windows aguardará antes de iniciá-lo)
Desde já, obrigado.
[Resposta] Eu finalmente usei uma variação na resposta de @Gjordis - mas todo o crédito é para ele.
Não vi por que precisávamos de três operações: adicionar, excluir e renomear e reduzi-o para dois.
Como quero vincular a uma tecla de atalho, preciso executar dois comamnds em um. Normalmente, é possível separar os comandos com ponto e vírgula e emiti-los em uma linha (por exemplo dir c:;dir d:
). Isso deu erros no reg
comando, então, no final, tenho dois arquivos em lote. Os conteúdos são idênticos, apenas a duração muda.
Na coisa estranha - o valor está escrito corretamente no registro, mas o Painel de Controle / Personalizar / Protetor de tela nem sempre atualiza sua GUI. No entanto, testei e o protetor de tela se comporta conforme o esperado.
@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 isso ajudar, por favor, vote novamente na pergunta ;-)
fonte
De fato, essa abordagem (via registro) não funciona até a reinicialização . A única maneira de fazer isso sem a reinicialização do PC é usar uma API:
https://www.pcreview.co.uk/threads/utility-to-temporariamente-change-the-screensaver.2321339/#post-7442568
mas as APIs não podem ser usadas a partir de uma linha de comando, ou seja, script VB. Aqui está o motivo:
http://forums.codeguru.com/showthread.php?31534-VBScript-and-API&p=86696#post86696
Isso poderia ser feito chamando o utilitário SetScrTimeout.exe (a partir do primeiro link), mas infelizmente esse pequeno utilitário não existe mais na Internet.
fonte