save2.cs
上传用户:yiyuerguo
上传日期:2014-09-27
资源大小:3781k
文件大小:4k
源码类别:

C#编程

开发平台:

Others

  1. using System ;
  2. using System.Drawing ;
  3. using System.Collections ;
  4. using System.ComponentModel ;
  5. using System.Windows.Forms ;
  6. using System.Data ;
  7. public class ScreenSaver : Form
  8. {
  9. private System.ComponentModel.IContainer components ;
  10. private Timer timerSaver ;
  11. private Label lblMarquee ;
  12. private int  speed = 12 ;
  13. private string strMarqueeText = "用C#制造的屏幕保护" ;
  14. private Font fontMarquee = new Font ( "Arial" , 20 , FontStyle.Bold ) ;        
  15. private Color colorMarquee = Color.BlueViolet  ;
  16. private int iDistance ;
  17. private int ixStart = 0 ;
  18. private int iyStart = 0 ;  
  19. public ScreenSaver ( )
  20. {            
  21. InitializeComponent ( ) ;
  22. lblMarquee.Font=fontMarquee ;
  23. lblMarquee.ForeColor=colorMarquee ;
  24. Cursor.Hide  ( ) ;
  25. }
  26. /// 清理所有正在使用的资源。
  27. protected override void Dispose ( bool disposing )
  28. {
  29. if ( disposing )
  30. {
  31. if ( components != null ) 
  32. {
  33. components.Dispose ( ) ;
  34. }
  35. }
  36. base.Dispose ( disposing ) ;
  37. }
  38. private void InitializeComponent ( )
  39. {
  40. components = new System.ComponentModel.Container ( ) ;
  41. timerSaver = new Timer ( components ) ;
  42. lblMarquee = new Label ( ) ;
  43. SuspendLayout ( ) ;
  44. timerSaver.Enabled = true ;
  45. timerSaver.Interval = 1 ;
  46. timerSaver.Tick += new System.EventHandler ( timerSaver_Tick ) ;
  47. lblMarquee.ForeColor = Color.White ;
  48. lblMarquee.Location = new Point ( 113 , 0 ) ;
  49. lblMarquee.Name = "lblMarquee" ;
  50. lblMarquee.Size = new Size ( 263 , 256 ) ;
  51. lblMarquee.TabIndex = 0 ;
  52. lblMarquee.Visible = false ;
  53. AutoScaleBaseSize = new Size ( 6 , 14 ) ;
  54. BackColor = Color.Black ;
  55. ClientSize = new Size ( 384 , 347 ) ;
  56. ControlBox = false ;
  57. this.Controls.Add ( lblMarquee) ;
  58. this.KeyPreview = true ;
  59. this.MaximizeBox = false ;
  60. this.MinimizeBox = false ;
  61. this.Name = "ScreenSaver" ;
  62. //窗体运行后无边界
  63. this.FormBorderStyle = FormBorderStyle.None ;
  64. //程序运行后不显示在任务栏上
  65. this.ShowInTaskbar = false ;
  66. //窗体运行后,最大化,充满整个屏幕
  67. this.WindowState = FormWindowState.Maximized ;
  68. this.StartPosition = FormStartPosition.Manual ;
  69. this.KeyDown += new KeyEventHandler ( Form1_KeyDown ) ;
  70. this.MouseDown += new MouseEventHandler ( Form1_MouseDown ) ;
  71. this.MouseMove += new MouseEventHandler ( Form1_MouseMove ) ;
  72. ResumeLayout ( false ) ;
  73. }
  74. protected void timerSaver_Tick ( object sender , System.EventArgs e )
  75. {
  76. int randomum1 ;
  77. Random r1 = new Random();
  78. randomum1 = (int)(600*r1.NextDouble());
  79. lblMarquee.Text = strMarqueeText ;
  80. lblMarquee.Height = lblMarquee.Font.Height ;
  81. lblMarquee.Width = 350 ;
  82. //得到计算机屏幕的工作区域
  83. Rectangle ssWorkArea = Screen.GetWorkingArea ( this ) ;
  84. lblMarquee.Location = new Point ( ssWorkArea.Width - iDistance ,
  85. lblMarquee.Location.Y ) ;
  86. randomum1 = (int)(ssWorkArea.Width*r1.NextDouble()); 
  87. //显示标签
  88. lblMarquee.Visible = true ;
  89. // 增加2个象素点,你可以通过修改speed的值来改变标签的移动速度
  90. iDistance += speed ;
  91. // 如果标签已经走出屏幕,则把标签的位置重定位到屏幕的右边
  92. if ( lblMarquee.Location.X <= -( lblMarquee.Width ) )
  93. {
  94. iDistance = 0 ;
  95. //初始位置随机产生 从右面出来
  96. lblMarquee.Location = new Point ( lblMarquee.Location.X , randomum1 ) ;
  97. }
  98. }
  99. protected void Form1_MouseDown ( object sender , MouseEventArgs e )
  100. {
  101. Cursor .Show  ( ) ; 
  102. timerSaver.Enabled = false ;
  103. Application .Exit ( ) ;
  104. }
  105. protected void Form1_MouseMove ( object sender , MouseEventArgs e )
  106. {
  107. // 把鼠标刚刚开始移动的位置给记录下来
  108. if ( ixStart == 0 && iyStart == 0 )
  109. {
  110. ixStart = e.X ;
  111. iyStart = e.Y ;
  112. return ;
  113. }
  114. //判断自屏幕保护程序运行后,鼠标的位置是否变动
  115. else if ( e.X != ixStart || e.Y != iyStart )
  116.   {
  117.      Cursor .Show  ( ) ; 
  118.      timerSaver.Enabled = false ;
  119.      Application .Exit ( ) ;
  120.   };
  121. }
  122. protected void Form1_KeyDown ( object sender , KeyEventArgs e )
  123. {
  124. Cursor .Show  ( ) ; 
  125. timerSaver.Enabled = false ;
  126. Application .Exit ( ) ;
  127. }
  128. public static void Main (  ) //string [ ] args
  129. {
  130. Application.Run ( new ScreenSaver ( ) ) ;
  131. }
  132. }