首 页 | 精品电影 | 音乐天堂 | 在线游戏 | Flash MTV | 三湘书屋 | 幽默笑话 | 三湘图库 | 美女写真 | IT知识库 | QQ贴图 | 加入书签

网页制作网络编程图形图象操作系统冲浪宝典软件教学网络安全认证考试通信技术电子商务业内动态书籍教程原码

最近更新 文章分类 多媒体类 精品软件

本站搜索:
您的位置:三湘时空 -> IT知识库 -> 文章分类 -> C#应用 -> 用C#做ScreenSaver  
用C#做ScreenSaver


文章类别:C#应用 来源: 作者: 发表日期:2005-10-4 字体:[ ]

小游戏 | 在线影院 | 幽默笑话 | 源码下载 | Flash MTV | 音乐试听 | 书屋 | 美女写真

/* Program : A Simple Screen Saver
* File Name : ScreenSaver.cs
* Author : Tran Khanh Hien
* Date : 06/20/2001
* email : hientk@yahoo.com
*/

namespace Screen_Saver
{
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.WinForms;
using System.Data;


/// <summary>
/// Summary description for Form1.
/// </summary>
public class ScreenSaver : System.WinForms.Form
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components;
private System.WinForms.Timer timerSaver;
private System.WinForms.Label lblMarquee;

private int iSpeed = 2;
private string strMarqueeText="C Sharp Screen Saver";

private System.Drawing.Font fontMarquee = new System.Drawing.Font ("Arial", 20,
System.Drawing.FontStyle.Bold);
private Color colorMarquee = System.Drawing.Color.FromARGB(255,255,255);

private int iDistance;
private int ixStart= 0;
private int iyStart= 0;

public ScreenSaver()
{
InitializeComponent();

lblMarquee.Font=fontMarquee;
lblMarquee.ForeColor=colorMarquee;
System.Drawing.Cursor.Hide();
}

/// <summary>
/// Clean up any resources being used.
/// </summary>
public override void Dispose()
{
base.Dispose();
components.Dispose();
}

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager (typeof
(ScreenSaver));
this.components = new System.ComponentModel.Container ();
this.timerSaver = new System.WinForms.Timer (this.components);
this.lblMarquee = new System.WinForms.Label ();
//@this.TrayHeight = 90;
//@this.TrayLargeIcon = false;
//@this.TrayAutoArrange = true;
//@timerSaver.SetLocation (new System.Drawing.Point (7, 7));
timerSaver.Interval = 1;
timerSaver.Enabled = true;
timerSaver.Tick += new System.EventHandler (this.timerSaver_Tick);
lblMarquee.Location = new System.Drawing.Point (88, 0);
lblMarquee.Size = new System.Drawing.Size (128, 48);
lblMarquee.ForeColor = System.Drawing.Color.White;
lblMarquee.TabIndex = 0;
lblMarquee.Visible = false;
this.MaximizeBox = false;
this.StartPosition = System.WinForms.FormStartPosition.Manual;
this.AutoScaleBaseSize = new System.Drawing.Size (5, 13);
this.BorderStyle = System.WinForms.FormBorderStyle.None;
this.KeyPreview = true;
this.WindowState = System.WinForms.FormWindowState.Maximized;
this.ShowInTaskbar = false;
this.Icon = (System.Drawing.Icon) resources.GetObject ("$this.Icon");
this.ControlBox = false;
this.MinimizeBox = false;
this.BackColor = System.Drawing.Color.Black;
this.ClientSize = new System.Drawing.Size (300, 300);
this.KeyDown += new System.WinForms.KeyEventHandler (this.Form1_KeyDown);
this.MouseDown += new System.WinForms.MouseEventHandler (this.Form1_MouseDown);
this.MouseMove += new System.WinForms.MouseEventHandler (this.Form1_MouseMove);
this.Controls.Add (this.lblMarquee);
}

protected void timerSaver_Tick (object sender, System.EventArgs e)
{
lblMarquee.Text=strMarqueeText;
lblMarquee.Height=lblMarquee.Font.Height;
lblMarquee.Width=lblMarquee.Text.Length*(int)lblMarquee.Font.Size;

PlayScreenSaver();
}

private void PlayScreenSaver()
{
//Get the working area of the the computer screen.
System.Drawing.Rectangle ssWorkArea = System.WinForms.Screen.GetWorkingArea(this);

lblMarquee.Location=new System.Drawing.Point(ssWorkArea.Width - iDistance,
lblMarquee.Location.Y);

//Make the label visible if it is not currently visible.
lblMarquee.Visible=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 (lblMarquee.Location.X <= -(lblMarquee.Width))
{
//Reset the distance to 0.
iDistance = 0;

//If the label is at the top, move it to the middle.
if (lblMarquee.Location.Y == 0)
lblMarquee.Location=new System.Drawing.Point(lblMarquee.Location.X,
(ssWorkArea.Height / 2));

// If label is in the middle of the screen move it to the bottom.
else if(lblMarquee.Location.Y== ssWorkArea.Height /2)
lblMarquee.Location=new System.Drawing.Point(lblMarquee.Location.X,ssWorkArea.Height -
lblMarquee.Height);
//Move the label back to the top.
else
lblMarquee.Location=new System.Drawing.Point(lblMarquee.Location.X,0);
}
}

protected void Form1_MouseDown (object sender, System.WinForms.MouseEventArgs e)
{
StopScreenSaver();
}

protected void Form1_MouseMove (object sender, System.WinForms.MouseEventArgs e)
{
// Determine if the mouse cursor position has been stored previously.
if (ixStart == 0 && iyStart == 0)
{
//Store the mouse cursor coordinates.
ixStart = e.X;
iyStart = e.Y;
return;
}
// Has the mouse cursor moved since the screen saver was started?
else if (e.X != ixStart || e.Y != iyStart)
StopScreenSaver();

}

private void StopScreenSaver()
{
System.Drawing.Cursor.Show();
timerSaver.Enabled=false;
Application.Exit();
}

protected void Form1_KeyDown (object sender, System.WinForms.KeyEventArgs e)
{
StopScreenSaver();
}

/// <summary>
/// The main entry point for the application.
/// </summary>
public static void Main(string[] args)
{
if (args.Length==1)
{
//Display the options dialog box.
if (args[0].Substring(0,2).Equals("/c"))
{
MessageBox.Show("Options are not available for this screen saver",
" C# Screen Saver",
MessageBox.IconInformation);
Application.Exit();
}
//Start the screen saver normally.
else if (args[0]=="/s")
Application.Run(new ScreenSaver());

//Diaplay the password dialog
else if (args[0]=="/a")
{
MessageBox.Show("Passwords are not available for this screen saver",
" C# Screen Saver",
MessageBox.IconInformation);
Application.Exit();
}
}
//For any other args --> start.
else
Application.Run(new ScreenSaver());
}

}
}


 

上一篇:c#里面的namespace基础(二) 下一篇:用Visual C#调用Windows API函数
本栏目热门文章
·C# Socket编程 2006-3-14
·[C#]解决读写包含汉字的txt文件时乱码的问题 2005-10-4
·c#操作word表格 2005-10-4
·在C#.net中将查询数据导入EXCEL表输出 2006-3-24
·使用C#在进度条中显示复制文件的进度 2005-11-13
·C#.Net网络程序开发-Socket篇 2006-3-14
·C#中使用SendMessage 2005-10-4
·利用C#进行AutoCAD的二次开发(一) 2005-10-4
·利用C#进行AutoCAD的二次开发(二) 2005-10-4
·用Visual C#获得计算机名称和IP地址 2005-10-4
新近更新文章
·C#中计算两个时间的差 2006-6-20
·基于Remoting透明代理的AOP组件 2006-6-20
·用CDO.Message打造邮件发送程序 2006-6-15
·C#箴言之用属性来访问类的私有成员 2006-6-15
·C#中父窗口和子窗口之间实现控件互操作 2006-6-15
·C# 中启动进程的三种方法 2006-6-12
·讲述c#中的类型转换 2006-6-9
·如何把html中的相对路径变成绝对路径 2006-6-9
·C#简单命名指南 2006-6-6
·在Excel中将连续多列相同数据项合并 2006-6-4
首 页 | 软件发布 | 广告联系 | 下载帮助 | 意见反馈 | 网站地图
  CopyRight? 2002-2004 WWW.SXSKY.NET? All Rights Reserved
三湘时空 站长QQ:82675303 Email: