(Como) posso alterar o tempo até que o protetor de tela comece a partir da linha de comando?

10

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 regcomando, 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 ;-)

Mawg diz que restabelece Monica
fonte

Respostas:

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

O valor 600 é em segundos, = 10 minutos. Curiosamente, como apontado, isso funciona apenas na primeira vez. Na próxima alteração, você precisará criar uma nova chave assim:

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

Em seguida, exclua o antigo

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

Em seguida, copie o novo com o nome certo

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

Hopy isso funciona, e você não destrói seu computador, mas desde que você não tinha esse valor do registro, não acho que a exclusão dele seja tão horrível.

Documentação do REG aqui: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/reg.mspx?mfr=true

Gjordis
fonte
Isso funciona :-) Apenas na primeira vez :-( presumivelmente porque eu não tinha uma entrada de registro na primeira vez, então poderia adicionar, mas talvez precise modificar posteriormente? +1 para tentar. Obrigado
Mawg diz que restabelece Monica
1
Editado para espero trabalhar outras vezes demasiado
Gjordis
+1 Bem, isso é estranho. Percebo que está atualizando a chave do registro, mas quando clico com o botão direito na área de trabalho (ou via painel de controle) e escolho "peronalizar", ele ainda mostra 5 mintes na GUI. Se eu definir 10 segundos via registro, o protetor de tela não será iniciado após 10 segundos (ou mesmo alguns minutos). Se eu definir 1 minuto na GUI, ele será iniciado após 1 minuto (e atualizará o registro corretamente).
Mawg diz que restabelece Monica em
Talvez ele tem uma -range valor válido
Gjordis
+1 Usei uma variação da sua resposta e a publiquei na pergunta acima. Obrigado pela sua ajuda
Mawg diz restabelecer Monica 6/13
1

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.

Aleksandar
fonte
Obrigado por isso. Talvez o SetScrTimeout.exe possa ser encontrado no caminho de volta à máquina ? Não consigo verificar por causa do firewall da empresa, mas ele deve estar lá - tudo o resto está ;-)
Mawg diz que restaura a Monica
1
Eu até tentei em servidores ftp, mas sem resultado. Encontrei um código-fonte VB para esse fim ( freevbcode.com/ShowCode.asp?ID=504 ), mas não consigo criar e compartilhar um exe.
Aleksandar
Alguma idéia de qual versão do VB (eu acho que VN 6)?
Mawg diz que restabelece Monica
1
Sim, é VB6. Desculpe pela minha resposta tardia.
Aleksandar