使屏幕保护程序注册表更改在 Windows XP 中立即生效

使屏幕保护程序注册表更改在 Windows XP 中立即生效

我知道我可以通过如下方式更新注册表从命令行更改 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"

但是,设置只有在我注销并重新登录后才会生效。如果我通过以下方式更改设置显示属性这些措施将立即生效。

是的,它是 Windows XP。是的,这是有原因的。

我知道设置超时时间所以我知道这是可以做到的。不过我无法在我的系统上使用该工具,我更喜欢自己开发的东西。

从命令行更改注册表时,如何使这些更改立即生效?

答案1

虽然 Windows 将屏幕保护程序配置存储在注册表中,但它不会不断检查其是否发生变化。这样效率会很低。

更改配置的正确方法是使用SystemParametersInfoWin32 的功能。为方便起见,桌面控制面板 DLL 导出一个可从命令行轻松访问的函数,该函数将为您调用该函数。只需运行以下命令:

rundll32.exe desk.cpl,InstallScreenSaver file.scr

话虽如此,以下命令应该强制 Windows 从注册表重新读取配置:

rundll32.exe user32.dll, UpdatePerUserSystemParameters

另外,您可能会发现使用命令行修改注册表更容易REG命令,而不是一直写入.reg文件。

相关内容