Archive: Screen Saver


Screen Saver
Hello I am trying to make an installer that would install my screen saver on any system.. Win 98 Windows 2000 NT XP etc..

I just used the Basic.nsi and added this line that I found on another post on this board

ExecWait 'rundll32.exe desk.cpl,InstallScreenSaver "$INSTDIR\myscreensaver.scr"'

Compiles good when I run the file it says installing etc.. then the screen saver control panel comes up. I see my screen saver in the list I click it hit apply then finish the installation. When I go back to my screen saver control panel my screen saver is no longer there.
The post that I copied that code from said that the command was the same as right clicking on the scr and then clicking install
I am running on Windows XP

Any help would greatly be appreciated


I believe the .scr file needs to be installed to the windows directory. Try automatically installing the file there and see if it works, that way the person doesn't have to choose where to install it. :)


Shouldn't this automatically make the screen saver the default?
WriteRegStr HKCU "Control Panel\Desktop" "SCRNSAVE.EXE" "C:\WINDOWS\test.SCR"

When it executes it removes the SCRNSAVE.EXE value from the registry.


I've been reading several threads on the forum about setting the current screen saver.

When I tried:


WriteRegStr HKCU "Control Panel\Desktop" "SCRNSAVE.EXE" "$WINDIR\LongScreensaverName.scr"


it didn't work. I found that the screen saver registry entry needed to be a dos 8.3 filename:


Var /GLOBAL "DOS83"
GetFullPathName /SHORT $DOS83 "$WINDIR\LongScreensaverName.scr"
WriteRegStr HKCU "Control Panel\Desktop" "SCRNSAVE.EXE" $DOS83

My screensavers are in $SYSDIR


WriteRegStr HKCU "Control Panel\Desktop" "SCRNSAVE.EXE" "$WINDIR\LongScreensaverName.scr"

Only works with short names as mentioned - but it works - see example above.

>> My screensavers are in $SYSDIR

common used - but windir also works - it depends of the saver itself.
eg. 3planesoft only uses sysdir, nufsoft can use both