This may not entirely answer your question, but I'm between meetings (yuck). Hopefully it will get you on the right track.
Here is the relevant code that we use to enforce screen saver policy here. It doesn't force a user to a particular screen saver, but I think it will help.
code:
:SCREEN_SAVER
; Ensure screen saver is installed, set for < 15 minutes, and pwd protected
; Is screen saver active? If not, set active.
WriteHeader('SCREEN_SAVER')
$sRegSubKey = 'HKEY_USERS\@SID\Control Panel\Desktop'
$sRegEntry = 'ScreenSaveActive'
IF Val(ReadValue($sRegSubKey,$sRegEntry)) <> 1
$RC = WriteValue($sRegSubKey,$sRegEntry,'1','REG_SZ')
Write( 'UCC - Enabled Screen Saver.',1)
$iExCode = $iExCode | 4
ELSE
Write('INF - Screen saver already enabled.',1)
ENDIF
; Is the timeout more than 15 minutes? If so, set for fifteen-minute timeout.
$sRegEntry = 'ScreenSaveTimeOut'
$Old = Val(ReadValue($sRegSubKey,$sRegEntry)) / 60
IF $Old > 15
$RC = WriteValue($sRegSubKey,$sRegEntry,'900','REG_SZ')
Write( 'UCC - Changed screen saver timeout from $Old to 15 min.',1)
$iExCode = $iExCode | 4
ELSE
Write('INF - Screen saver timeout OK. Value is: ' + $Old + ' minutes.',1)
ENDIF
; Is the screen saver password protected? If not, enable this feature.
$sRegEntry = 'ScreenSaverIsSecure'
IF Val(ReadValue($sRegSubKey,$sRegEntry)) <> 1
$RC = WriteValue($sRegSubKey,$sRegEntry,'1','REG_SZ')
Write( 'UCC - Enabled screen saver password protection.',1)
$iExCode = $iExCode | 4
ELSE
Write('INF - Screen saver already password protected.',1)
ENDIF
; Is a screen saver selected? If not, use the default screen saver.
$sRegEntry = 'SCRNSAVE.EXE'
$sTemp = ReadValue($sRegSubKey,$sRegEntry)
IF $sTemp = '(None)' OR @ERROR = 2
$RC = WriteValue($sRegSubKey,$sRegEntry,'%SYSTEMROOT%\System32\scrnsave.scr','REG_SZ')
Write( 'UCC - Enabled Default Screen Saver.',1)
$iExCode = $iExCode | 4
ELSE
Write('INF - Screen saver already selected.',1)
ENDIF
RETURN
New Mexico Mark
[ 03 April 2002, 23:55: Message edited by: New Mexico Mark ]