Faça as alterações no registro do protetor de tela entrem em vigor imediatamente no Windows XP

6

Eu sei que posso alterar as configurações do protetor de tela no Windows XP a partir da linha de comando, atualizando o registro da seguinte forma:

regedit.exe /s settings.reg

Onde settings.reg contém:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"ScreenSaveTimeOut"="7200"
"SCRNSAVE.EXE"="C:\WINDOWS\system32\scrnsave.scr"

No entanto, as configurações não entram em vigor até que eu efetue o logout e a devolução. Se eu alterar as configurações por meio de Propriedades de exibição , elas entrarão em vigor imediatamente.

Sim, é o Windows XP. Sim, há uma razão para isso.

Eu sei sobre o SetScrTimeout.exe , então sei que isso pode ser feito. Eu não posso usar essa ferramenta no meu sistema e preferiria algo caseiro.

Como posso fazer essas alterações entrarem em vigor imediatamente ao alterar o registro na linha de comando?

    
por dwj 15.04.2011 / 01:49

1 resposta

6

Enquanto o Windows armazena a configuração do protetor de tela no registro, ele não verifica se há alterações constantemente. Isso seria bastante ineficiente.

A maneira correta de alterar a configuração é usar o SystemParametersInfo função do Win32. Por conveniência, a DLL do painel de controle da área de trabalho exporta uma função que é facilmente acessada a partir da linha de comando que chamará essa função para você. Basta executar o seguinte comando:

rundll32.exe desk.cpl,InstallScreenSaver file.scr

Dito isso, o comando a seguir deve forçar o Windows a reler a configuração do registro:

rundll32.exe user32.dll, UpdatePerUserSystemParameters

Como um aparte, você pode achar mais fácil modificar o registro a partir da linha de comando usando o REG comando , em vez de escrever .reg arquivos o tempo todo.

    
por 15.04.2011 / 03:04