开篇:润墨网以专业的文秘视角,为您筛选了一篇基于C#的歌曲播放屏幕保护程序设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:介绍了用C#语言设计Windows屏幕保护程序的关键技术和实现方法,并在Visual Studio 2008开发环境中,实现了一个具有个性化的随机歌曲播放屏幕保护程序。
关键词:屏幕保护;C#;程序
中图分类号:TP311文献标识码:A文章编号:1009-3044(2011)22-5369-02
The Design of Music Screen-Protected Program Based on C#
SUN Cui-hua1, CAO Yan-ting2
(puter College, Soochow University Suzhou, Suzhou 215006, China; 2.Information and Electrical Engineering College, Suzhou Polytechnic Institute of Agriculture, Suzhou 215008, China)
Abstract: Introduced the key technology and implementation methods of Windows Screen-Protected Program Base on C#, and achieved a personalized screen saver random songs play in the Visual Studio 2008 development environment.
Key words: screen-protected; C#; program
在图形界面的操作系统下,显示屏上显示的色彩多种多样,当用户停止对电脑进行操作时,屏幕显示就会始终固定在同一个画面上,即电子束长期轰击荧光层的相同区域,长时间下去,会因为显示屏荧光层的疲劳效应导致屏幕老化,甚至是显像管被击穿。因此从Windows 3_X时代至今,屏幕保护程序一直作为保护CRT显示屏的最佳帮手,通过不断变化的图形显示使荧光层上的固定点不会被长时间轰击,从而避免了屏幕的损坏。
本文向大家介绍了在Visual Studio 2008开发环境中,用C#语言编写的一个具有个性化的随机歌曲播放屏幕保护程序,程序运行如图1所示。
1 关键技术研究与实现
1.1 设定程序的窗体符合屏幕保护的要求
由于屏幕保护程序是一个可执行程序,所以在编写屏幕保护程序的时候,首先按照可执行程序来设计。但屏幕保护有自身的特点,譬如:屏幕保护都是充满整个屏幕的,并且没有边框。屏幕保护运行的时候,不显示任务栏。
在程序设计中实现这些特点,关键就在于对窗体的属性设置。下面是对窗体属性的设定,可以满足屏幕保护的要求,具体如下:
1)将程序的对话框设置为没有标题栏,窗体运行后,最大化,充满整个屏幕。
this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
2)设置窗体运行后无边界。
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
3)设置在Windows任务栏中不显示窗体。
this.ShowInTaskbar = false;
1.2 字符在屏幕上不断移动的效果
实现字符在屏幕上像字符屏保一样不断移动,是通过随机函数Random的Next方法来实现的,主要代码如下:
string strinfo = "歌曲播放屏幕保护";//设置字符显示信息
int x = new Random().Next(0, width - 250);//设置显示地点的x坐标
int y = new Random().Next(50, heigh - 20);//设置显示地点的y坐标
myGraphics.DrawString(strinfo, new Font("宋体", 20, FontStyle.Bold), new SolidBrush(Color.FromArgb(new Random().Next(50, 255), new Random().Next(70, 255), new Random().Next(36, 255))),x,y);//绘制内容
1.3 随机播放歌曲
1)首先需要设置音乐文件的路径信息,由于屏保程序需要放在系统的system32文件夹下,所以音乐文件也要放在系统文件夹下,利用Environment.SystemDirectory指定路径为“C:\WINDOWS\system32”。
strpath = Environment.SystemDirectory + "\\music";
2)在计时器的Tick事件中设置屏保信息, 主要代码如下:
this.timer1.Interval = new Random().Next(800, 1600);//设置time1的时间间隔
string strname = new Random().Next(1, 20).ToString();//记录随机数
//当播放器处于空或者已经停止时
if (this.axWindowsMediaPlayer1.status == "" || this.axWindowsMediaPlayer1.status == "已停止")
{
string strUrl = strpath + "\\" + strname + ".mp3";//获取多媒体文件所处的路径
this.axWindowsMediaPlayer1.URL = strUrl;//设置播放文件的URL
}
1.4 检测键盘、鼠标状态,确定退出屏幕保护程序
在屏幕保护运行的时候,当按下键盘、按下鼠标或移动鼠标,屏幕保护都会关闭。
1)当按下键盘时,停止屏幕保护。
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
StopScreenSaver();
}
2)当按下鼠标时,停止屏幕保护。
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
StopScreenSaver();
}
3)当移动鼠标时,停止屏幕保护。
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if (ixStart == 0 && iyStart == 0)//如果移动了鼠标
{
ixStart = e.X;//获取当前鼠标指针的位置
iyStart = e.Y;
return;
}
else if (e.X != ixStart || e.Y != iyStart)//如果鼠标指针的位置改变
StopScreenSaver();//停止屏幕保护
}
4)停止屏幕保护。
private void StopScreenSaver()
{
System.Windows.Forms.Cursor.Show();
timer1.Enabled = false;//停止计时器
Application.Exit();//关闭工程
}
2 配置和运行
最后生成可执行文件,把screen_saver.exe改为screen_saver.scr,拷入Windows的System32目录中,然后通过设置显示属性选中这个屏幕保护程序就可以运行了。至此,这个屏幕保护程序就完成了从编写到配置的全部工作了。
3 结束语
本文介绍了利用C#语言开发一个屏幕保护程序的全过程,对开发过程中的关键技术如随机播放歌曲、外键响应事件进行了探讨,并给出了相应的解决方法。
参考文献:
[1] 梁冰,吕双,王小科.C#程序开发范例宝典[M].2版.北京:人民邮电出版社,2009.
[2] 王建芳. 基于VC的屏幕保护程序设计[J].科技信息,2011(4).
[3] 柴华,孙纳新,田颖川.使用VB6.0打造个性屏幕保护程序[J].电脑学习,2009(3).
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文