Click here to Skip to main content
15,179,684 members
Articles / Desktop Programming / Windows Forms
Posted 21 Dec 2008


40 bookmarked

Multi-monitor Warp Speed Screen Saver

Rate me:
Please Sign up or sign in to vote.
4.60/5 (12 votes)
21 Dec 2008BSD1 min read
High-speed screen saver simulating a warp-speed effect; will span multiple monitors.
Image 1


My son and I were watching a sci-fi show on television and saw a cool effect that simulated a spacecraft approaching light speed. Later he asked me if we could do something similar on the computer as a screen saver - this was our go at it.


I found several C# starter programs that produced screen savers, but none of them I found would span multiple screens - this one does. It’s simple enough to be a good starting point for any other screen saver ideas you might have - if not, you can simply enjoy having this screen saver option in your collection.

Using the Code

To deploy the screen saver on your computer, you simply need to copy the binary file “Warp Speed.scr” to your Windows system32 folder (typically C:\Windows\system32\). Once there, the screen saver should appear on your system just like any other. There is a detailed set of options to tinker with for effect and the preview window works as well. Note that if you make modifications to the program and recompile, you will need to rename “Warp Speed.exe” to “Warp Speed.scr” and redeploy to your system folder. Here are some of the available options:


Points of Interest

Of special interest to those wanting to write a screen saver that spans multiple monitors will be the ScreenArea class, here is an excerpt:

/// <summary>
/// Gets the least "x" coordinate of all screens on the system
/// </summary>
/// <returns>The smallest visible "x" screen coordinate</returns>
public static int LeftMostBound
        int leftBound = int.MaxValue;

        // Return the left-most "x" screen coordinate
        foreach (Screen display in Screen.AllScreens)
            if (leftBound > display.Bounds.X)
                leftBound = display.Bounds.X;

        return leftBound;

This class allows the screen saver to calculate the bounds across all attached screens as follows:

// Screen saver is in full screen mode 
// (i.e., not the preview window) - make form span all available system screens
Left = ScreenArea.LeftMostBound;
Top = ScreenArea.TopMostBound;
Width = ScreenArea.TotalWidth;
Height = ScreenArea.TotalHeight;


  • 21st December, 2008: Initial post


This article, along with any associated source code and files, is licensed under The BSD License


About the Author

James Ritchie Carroll
United States United States
No Biography provided

Comments and Discussions

GeneralMy vote of 5 Pin
Manoj Kumar Choubey16-Apr-12 0:07
professionalManoj Kumar Choubey16-Apr-12 0:07 
GeneralMy vote of 5 Pin
ARBebopKid24-Oct-11 6:02
MemberARBebopKid24-Oct-11 6:02 
GeneralYay Pin
mrwid14-Apr-11 23:04
Membermrwid14-Apr-11 23:04 
GeneralNice Pin
Are Jay23-Dec-08 9:46
MemberAre Jay23-Dec-08 9:46 
GeneralNice :) Pin
Guillaume Leparmentier22-Dec-08 1:14
MemberGuillaume Leparmentier22-Dec-08 1:14 
GeneralRe: Nice :) Pin
James Ritchie Carroll22-Dec-08 12:56
MemberJames Ritchie Carroll22-Dec-08 12:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.