/* Program : A Simple Screen Saver
* File Name : ScreenSavercs
* Author : Tran Khanh Hien
* Date : //
* email :
*/
namespace Screen_Saver
{
using System;
using SystemDrawing;
using SystemCollections;
using SystemComponentModel;
using SystemWinForms;
using SystemData;
/// <summary>
/// Summary description for Form
/// </summary>
public class ScreenSaver : SystemWinFormsForm
{
/// <summary>
/// Required designer variable
/// </summary>
private SystemComponentModelContainer components;
private SystemWinFormsTimer timerSaver;
private SystemWinFormsLabel lblMarquee;
private int iSpeed = ;
private string strMarqueeText=C Sharp Screen Saver;
private SystemDrawingFont fontMarquee = new SystemDrawingFont (Arial
SystemDrawingFontStyleBold);
private Color colorMarquee = SystemDrawingColorFromARGB();
private int iDistance;
private int ixStart= ;
private int iyStart= ;
public ScreenSaver()
{
InitializeComponent();
lblMarqueeFont=fontMarquee;
lblMarqueeForeColor=colorMarquee;
SystemDrawingCursorHide();
}
/// <summary>
/// Clean up any resources being used
/// </summary>
public override void Dispose()
{
baseDispose();
componentsDispose();
}
/// <summary>
/// Required method for Designer support do not modify
/// the contents of this method with the code editor
/// </summary>
private void InitializeComponent()
{
SystemResourcesResourceManager resources = new SystemResourcesResourceManager (typeof
(ScreenSaver));
ponents = new SystemComponentModelContainer ();
thistimerSaver = new SystemWinFormsTimer (ponents);
thislblMarquee = new SystemWinFormsLabel ();
//@thisTrayHeight = ;
//@thisTrayLargeIcon = false;
//@thisTrayAutoArrange = true;
//@timerSaverSetLocation (new SystemDrawingPoint ( ));
timerSaverInterval = ;
timerSaverEnabled = true;
timerSaverTick += new SystemEventHandler (thistimerSaver_Tick);
lblMarqueeLocation = new SystemDrawingPoint ( );
lblMarqueeSize = new SystemDrawingSize ( );
lblMarqueeForeColor = SystemDrawingColorWhite;
lblMarqueeTabIndex = ;
lblMarqueeVisible = false;
thisMaximizeBox = false;
thisStartPosition = SystemWinFormsFormStartPositionManual;
thisAutoScaleBaseSize = new SystemDrawingSize ( );
thisBorderStyle = SystemWinFormsFormBorderStyleNone;
thisKeyPreview = true;
thisWindowState = SystemWinFormsFormWindowStateMaximized;
thisShowInTaskbar = false;
thisIcon = (SystemDrawingIcon) resourcesGetObject ($thisIcon);
thisControlBox = false;
thisMinimizeBox = false;
thisBackColor = SystemDrawingColorBlack;
thisClientSize = new SystemDrawingSize ( );
thisKeyDown += new SystemWinFormsKeyEventHandler (thisForm_KeyDown);
thisMouseDown += new SystemWinFormsMouseEventHandler (thisForm_MouseDown);
thisMouseMove += new SystemWinFormsMouseEventHandler (thisForm_MouseMove);
thisControlsAdd (thislblMarquee);
}
protected void timerSaver_Tick (object sender SystemEventArgs e)
{
lblMarqueeText=strMarqueeText;
lblMarqueeHeight=lblMarqueeFontHeight;
lblMarqueeWidth=lblMarqueeTextLength*(int)lblMarqueeFontSize;
PlayScreenSaver();
}
private void PlayScreenSaver()
{
//Get the working area of the the computer screen
SystemDrawingRectangle ssWorkArea = SystemWinFormsScreenGetWorkingArea(this);
lblMarqueeLocation=new SystemDrawingPoint(ssWorkAreaWidth iDistance
lblMarqueeLocationY);
//Make the label visible if it is not currently visible
lblMarqueeVisible=true;
// Increment the label distance based on the speed set by the user
iDistance += iSpeed;
// If the label is offscreen then we want to reposition it to the right
if (lblMarqueeLocationX <= (lblMarqueeWidth))
{
//Reset the distance to
iDistance = ;
//If the label is at the top move it to the middle
if (lblMarqueeLocationY == )
lblMarqueeLocation=new SystemDrawingPoint(lblMarqueeLocationX
(ssWorkAreaHeight / ));
// If label is in the middle of the screen move it to the bottom
else if(lblMarqueeLocationY== ssWorkAreaHeight /)
lblMarqueeLocation=new SystemDrawingPoint(lblMarqueeLocationXssWorkAreaHeight
lblMarqueeHeight);
//Move the label back to the top
else
lblMarqueeLocation=new SystemDrawingPoint(lblMarqueeLocationX);
}
}
protected void Form_MouseDown (object sender SystemWinFormsMouseEventArgs e)
{
StopScreenSaver();
}
protected void Form_MouseMove (object sender SystemWinFormsMouseEventArgs e)
{
// Determine if the mouse cursor position has been stored previously
if (ixStart == && iyStart == )
{
//Store the mouse cursor coordinates
ixStart = eX;
iyStart = eY;
return;
}
// Has the mouse cursor moved since the screen saver was started?
else if (eX != ixStart || eY != iyStart)
StopScreenSaver();
}
private void StopScreenSaver()
{
SystemDrawingCursorShow();
timerSaverEnabled=false;
ApplicationExit();
}
protected void Form_KeyDown (object sender SystemWinFormsKeyEventArgs e)
{
StopScreenSaver();
}
/// <summary>
/// The main entry point for the application
/// </summary>
public static void Main(string[] args)
{
if (argsLength==)
{
//Display the options dialog box
if (args[]Substring()Equals(/c))
{
MessageBoxShow(Options are not available for this screen saver
C# Screen Saver
MessageBoxIconInformation);
ApplicationExit();
}
//Start the screen saver normally
else if (args[]==/s)
ApplicationRun(new ScreenSaver());
//Diaplay the password dialog
else if (args[]==/a)
{
MessageBoxShow(Passwords are not available for this screen saver
C# Screen Saver
MessageBoxIconInformation);
ApplicationExit();
}
}
//For any other args > start
else
ApplicationRun(new ScreenSaver());
}
}
}