次のようにレジストリを更新することで、コマンドラインからWindows XP)のスクリーンセーバーの設定を変更できることを知っています。
regedit.exe /s settings.reg
Settings.regに含まれる場所:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Desktop]
"ScreenSaveTimeOut"="7200"
"SCRNSAVE.EXE"="C:\\WINDOWS\\system32\\scrnsave.scr"
ただし、ログアウトして再度ログインするまで設定は有効になりません。表示プロパティを使用して設定を変更すると、すぐに有効になります。
はい、WindowsXPです。はい、それには理由があります。
SetScrTimeout.exe について知っているので、実行できることはわかっています。私は自分のシステムでそのツールを使用することはできませんが、自家製のものを好みます。
コマンドラインからレジストリを変更したときに、これらの変更をすぐに有効にするにはどうすればよいですか?
Windowsはスクリーンセーバーの構成をレジストリに保存しますが、変更がないか常にチェックするわけではありません。それはかなり非効率的です。
構成を変更する正しい方法は、Win32の SystemParametersInfo
関数を使用することです。便宜上、デスクトップのコントロールパネルDLLは、その関数を呼び出すコマンドラインから簡単にアクセスできる関数をエクスポートします。次のコマンドを実行するだけです。
rundll32.exe desk.cpl,InstallScreenSaver file.scr
そうは言っても、次のコマンドはWindowsにレジストリから構成を再読み込みさせる必要があります。
rundll32.exe user32.dll, UpdatePerUserSystemParameters
余談ですが、常に.reg
ファイルを書き込むよりも、 REG
command を使用して、コマンドラインからレジストリを変更する方が簡単な場合があります。