Sunday, February 8, 2004

C# Screensaver

This screensaver will display just about any media on your computer (pictures, video files, and audio files), thus it is "Super Cool".

It also can count down the number of days, hours, minutes, and/or seconds until some special day. It paints a message on the screen with the countdown.

Other features include: rotating files, a "do not play list", ignoring thumbnails, muting audio, multiple directories of media, and many others.

Download source code here
Download installer here


  1. If you have not already done so, install the Microsoft .NET Runtime from Microsoft Windows Update
  2. If you have not already done so, install DirectX 9.0 from Microsoft's DirectX to insure full functionality. If you choose not to install this, video files will not play properly. Microsoft points out that DirectX cannot be uninstalled, so you may want to make a Windows Savepoint (XP only).
  3. Download the latest Setup .msi file
  4. Run the Setup .msi file.
  5. Enable the screen saver on the display properties dialog. (Right-click on the windows desktop, select properties, select the Screen Saver tab, from the Screen Saver pull-down menu, select SuperCoolScreenSaver, then hit the Settings button.)


Since it is a GUI app, most dialogs are hopefully self-explanatory.


To enable the screensaver, like any other, goto Display Properties Dialog > Screen Saver > Choose SuperCool

To setup the screensaver, either click the Settings button or choose Start Menu > All Programs > SuperCoolScreenSaver > Settings (note you can also run the screensaver from the StartMenu to use it just as a slide show).


There are four global controls:

  1. Set the amount of time (in seconds) that each picture or text message is display on the bottom of the Dialog. 
  2. 2. Run will give you a preview of the screen saver.
  3. 3. Cancel will quit without saving changes (including any pictures you rotated in "test" mode).
  4. 4. Ok saves all changes and exits the program.

There are also six tabs within the Settings Dialog.


This tab allows you to setup a message to be displayed on the screen.  Type a message into the text box and check the "Show Text" to enable this feature.

You can use four special fields to countdown to some furtue date (e.g. New Year's, your birthday, vacation from work!)  The following strings have special meaning:

The total number of days until your chosen day.
The total number of hours until your chosen day.
The total number of minutes until your chosen day.
The total number of seconds until your chosen day.

Set the date and font through extra dialogs which are invoked by the two buttons on the dialog.  Random Colors, if enabled, will display the message in randomly chosen colors.


Use this dialog page to setup the options for showing pictures. First be sure to enable "Show Media", as this must be enabled to show any media.

Then check the directory or directories that contain your media files.

If include all subdirectories is selected, files from the directory you check along with all subdirectories will be used.  If this is not selected, then you can individually select each directory to search for media.

File Types

This page allows you to select the types of files to be displayed.  By default, only jpg and jpeg are enabled.  Either click on the individual extensions to enable / disable or use the following buttons:

  • Select All will enable all supported file types
  • Clear All will disable all supported file types (no files will be displayed)
  • Select All Non-Music will enable images and video files, but not music files.

As you can see, there is quite a variety of supported file types.


There are several options for the order in which files are displayed.  By default, it should sort them cronologically with the most recent first (which means you'll see your pictures in reverse order!)  If you want some variety you can enable Random Order or to just start at a random spot of all you pictures chooese Start At A Random Point.

Allow Keyboard To Advance turns on additional functionality while the screensaver is running. Press F1 while it is running for a list of commands.  Note, you must then use Escape or mouse movement to exit the screensaver.

Optionally, the screensaver will display filenames at the bottom of the screen.

Showing color information is rather useless.  It shows percentage of each color (red, green and blue) that makes up a displayed image.

You can setup a filter to block small pictures from being displayed.  For instance, setting the slider to 200 will show only pictures whose width and height are both larger then 200 pixels.  This prevents small thumbnails from being displayed, since they don't generally look very good fullscreen!

You can also have video/audio files muted (or optionally, muted between certain times of day - useful if you have your computer running all night and wish to not be awakened by media playing).

Rotated Pictures

This page will list all of the images which you have rotated.  That is, when the screensaver is running (and if you have enabled Allow Keyboard to Advance), hitting "R" will rotate the picture - but it won't touch the file.  If you'd like to update the files on the harddrive, then select the files (jpeg only) and click Fix Files.  You can also remove selected items off the list here and save the list to a text file for other programs to possibly parse (or for you to go through by hand and rotate).

Hide / Show will hide and show the preview window.

Removed Files

This page lists all of the files which you have chose not to display.  That is, when the screensaver is running (and if you have enabled Allow Keyboard to Advance), hitting "D" or "Delete" will place a file on a "Do Not Show" list.  You can see that list here and save it to a text file for parsing by another script (for instance, to delete them all).  If you'd like the file to be played again, select it and click Remove Selected.  This simply removes them from the list - it does NOT remove them from your harddrive.

1 comment:

Anonymous said...

Do you still have the source for this anywhere? I would love to take a look. My email address is robert(at) Thanks in advance for any help you can give me.