IMHO it should take effect immediately.. Just as if you are changing it from the GUI. What OS are you using? Certain SS configs are in different places in XP. The screensaver may have its own timeout property, rather than an explorer shell timeout property(but I doubt it). Try looking under HKCU\Software\**Vendor** tree. Search the registry for any keys specific to that screensaver to make sure you are finding all the keys. Here is what I use for Microsoft specific screensavers (specifically the 3d flying objects SS):
Code:
$ProductName = ReadValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion", "ProductName")
WriteValue ("HKEY_CURRENT_USER\Control Panel\Desktop","SCRNSAVE.EXE", "%SYSTEMROOT%\system32\ss3dfo.scr","REG_SZ")
WriteValue ("HKEY_CURRENT_USER\Control Panel\Desktop","ScreenSaveTimeOut","600","REG_SZ")
WriteValue ("HKEY_CURRENT_USER\Control Panel\Desktop","ScreenSaveActive", "1","REG_SZ") ; <- Make screensaver active
WriteValue ("HKEY_USERS\.DEFAULT\Control Panel\Desktop","ScreenSaveActive", "1","REG_SZ")
WriteValue ("HKEY_CURRENT_USER\Control Panel\Desktop","ScreenSaverIsSecure","1","REG_SZ")
Select
Case $ProductName = "Microsoft Windows 2000"
WriteValue ("HKEY_CURRENT_USER\Control Panel\Screen Saver.3DFlyingObj","Options","1","REG_SZ")
WriteValue ("HKEY_CURRENT_USER\Control Panel\Screen Saver.3DFlyingObj","Size","100","REG_SZ")
WriteValue ("HKEY_CURRENT_USER\Control Panel\Screen Saver.3DFlyingObj","Tesselation","200","REG_SZ")
WriteValue ("HKEY_CURRENT_USER\Control Panel\Screen Saver.3DFlyingObj","Texture","%SYSTEMROOT%\OtherOrg.BMP","REG_SZ")
WriteValue ("HKEY_CURRENT_USER\Control Panel\Screen Saver.3DFlyingObj","TextureFileOffset","11","REG_SZ")
WriteValue ("HKEY_CURRENT_USER\Control Panel\Screen Saver.3DFlyingObj","Type","6","REG_SZ")
Case $ProductName = "Microsoft Windows XP"
WriteValue ("HKEY_CURRENT_USER\Software\Microsoft\Screensavers\Flying Objects","Options","1","REG_DWORD")
WriteValue ("HKEY_CURRENT_USER\Software\Microsoft\Screensavers\Flying Objects","Size","100","REG_DWORD")
WriteValue ("HKEY_CURRENT_USER\Software\Microsoft\Screensavers\Flying Objects","Tesselation","200","REG_DWORD")
WriteValue ("HKEY_CURRENT_USER\Software\Microsoft\Screensavers\Flying Objects","Texture","%SYSTEMROOT%\OtherOrg.BMP","REG_SZ")
WriteValue ("HKEY_CURRENT_USER\Software\Microsoft\Screensavers\Flying Objects","TextureFileOffset","11","REG_DWORD")
WriteValue ("HKEY_CURRENT_USER\Software\Microsoft\Screensavers\Flying Objects","Type","6","REG_DWORD")
Case 1
? "Could not determine OS type.. screensaver not configured.."
EndSelect