在Windows 7中禁用并启用屏幕保护程序

xpd*_*pda 5 .net vb.net screensaver windows-7 winforms

我有一个应用程序而不是暂时禁用屏幕保护程序以运行幻灯片放映.我用它打开或关闭它:

i = SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, active, Nothing, SPIF_SENDWININICHANGE)
Run Code Online (Sandbox Code Playgroud)

这在XP中运行良好.在Windows 7中,它会正确禁用屏幕保护程序.但是,当再次启用时,在屏幕保护程序正常运行时,系统会要求输入密码而不是显示屏幕保护程序.

从此时开始,直到在控制面板中调整屏幕保护程序设置,将显示密码屏幕以代替屏幕保护程序.

我还应该为Windows 7做些什么吗?我知道Windows 7不支持SPI_GETSCREENSAVEACTIVE,但SPI_SETSCREENSAVEACTIVE应该是.

xpd*_*pda 5

解决方案是更改注册表值HKCU\Control Panel\Desktop ScreenSaveActive键而不是使用SystemParametersInfo.这适用于XP和Windows 7.

Call Registry.SetValue("HKEY_CURRENT_USER\Control Panel\Desktop", "ScreenSaveActive", "1")
Run Code Online (Sandbox Code Playgroud)