你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
C#制作多功能屏幕保护程序(二)
 

背景图片算是添加到资源中了,下面修改程序。关掉资源管理选项卡,找到刚才发现的添加默认显示图片的代码,即ScreenSaverForm.cs文件中的LoadDefaultBackgroundImages()函数。只需要将我们改动的图片加入,同时删除原有的两句加载背景图片的代码,最后LoadDefaultBackgroundImages()中的代码如下:

            backgroundImages.Add(Properties.Resources.green);

            backgroundImages.Add(Properties.Resources.blue);

backgroundImages.Add(Properties.Resources.yellow);

要更改背景图片变化的间隔时间可以在ScreenSaverForm.cs设计视图中,单击backgroundChangeTimer在属性窗口中,更改Interval属性,默认的是1000010秒钟。

 

       显示天气预报

 

在原例程中建议使用的气象服务是美国的,而且使用的是访问Web服务的方式。这里笔者使用另外一种方式来实现——抓取网页并从中提取需要的信息。C#是面向对象的语言,所有的代码必须属于一个类,所有的功能都使用对象来完成。本例将使用一个Weather类来实现抓取页面显示天气的功能,虽然Weather类完成的不仅是UI的功能,但是笔者还是趋向于把所有涉及到用户界面的类都放到UI命名空间里面。在解决方案管器中的UI文件夹(也可以叫命名空间)上点击右键,选择“添加”,“新建项”,选择“类”,命名为“Weather”,点击确定,建立了Weather.cs文件。详细代码如下:

    class Weather

    {

        //用于存储天气图片的List

        private List<Image> wImage;

        //存储图片名的字符串

        private string wiString;

        //城市名

        private string city;

        //天气详细信息

        private string weatherDetail;

        //温度

        private string lapse;

        //风速

        private string wind;

        //日期

        private string date;

        //字体

        private Font font;

        //画刷

        private static Brush brush = Brushes.Black;

        //显示天气的区域的左上角的点

        private Point wPoint;

       

        //实现读取/设置属性的两个函数

        public Point WPoint { get { return wPoint; } set { wPoint = value; } }

        public Font Font { get { return font; } set { font = value; } }

 

        //初始化函数,这里只需要定义图片List就可以了

        public Weather ()

        {

            wImage = new List<Image>();

        }

 

        //这个函数访问天气预报的网页

        public void GetUrl()

        {

            WebClient ScreenWeather = new WebClient();

            //这就是要抓取的现实天气信息的网页,可以直接通过IE访问

            string url = "http://www.nmc.gov.cn/homeweather.php";

            using ( Stream  WeatherStream = ScreenWeather.OpenRead( url ) )

            {

                //对数据流进行编码,要不然读出来的可能是乱码

                StreamReader wsr = new StreamReader( WeatherStream,Encoding.GetEncoding("GB2312") );

                string ws = wsr.ReadToEnd();

               //在一大堆HTML代码中查找需要的信息

                ws = ws.Substring( ws.IndexOf( "city" ) + 9 );

                city = ws.Substring( 0, ws.IndexOf( "<" ) );

                ws = ws.Substring( ws.IndexOf( "weather" ) + 9 );

                weatherDetail = ws.Substring( 0, ws.IndexOf( "<" ) );

                Stream imgStream;

                int i = 0;

  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089