小新的技术天地

Make It Works !

博客园 首页 新随笔 联系 订阅 管理

如同标题显示的,这只是一篇使用介绍,未涉及源码分析。

 

如果你英文够好,看这篇文章可能有些多余,因为完全依照Starter kit的文档所写,你可以自己看那个英文文档。对我自己算是看了实验以后的一点记录。

 

这个Starter Kit是一个屏幕保护程序,跟普通的窗体稍微有些不同,但大家都知道屏保的一些行为,比如鼠标或者键盘有所动作,屏保就会自动关闭。

 

程序使用的相关技术有:

1.GDI+:在屏保上绘制图象跟文本

2.System.XML:其实这个算是这个屏保程序的最大特点,从网络上的Rss Feed或者文本信息显示在屏保上,大家都知道Rss使用的是XML格式,使用这个命名空间的相关类操作也是很自然的事情

4.The WebClient class:从网络上下载信息(由于要从网络上下载信息,所以如果网络不通畅,程序打开的时候会有一段时间没有响应)

5.RSS:包括RSS feeds, channels and items

6.C#2.0语言特性:泛型,这个肯定是要用地…..

 

编译运行

程序是Ready to Run的,你按F5就可以编译运行了,默认的Rss Feed是从微软的网站上的,稍后介绍如何更改,程序自带的图片也不是很好看,呵呵

 

修改代码

显示额外的一行文本:

  1. 找到 Solution Explorer 窗口; 找到 ScreenSaverForm.cs 查看它的代码
  2. 找到 OnPaint 方法
  3. 加入以下代码:
    e.Graphics.DrawString("<Your name>C# Screen Saver", rssView.TitleFont, Brushes.Orange, new PointF(00));
  4. F5运行程序

 

使用Options Dialog Box

屏保使用命令行参数来显示选项窗口,如果我们要在IDE中使用命令行参数运行程序,可以使用如下步骤:

  1. 打开 Solution Explorer, 双击 Screen Saver project下的Properties节点.
    然后我们就可以配置我们的工程了。
  2. 点击 Debug 标签, 找到 Command Line Arguments 文本框.
  3. 键入 /c 到文本框.
    这样就可以让 Visual C# 使用 /c 命令行参数运行程序.
  4. F5 运行程序.
    选项窗口就出现了.
  5. 然后你可以自己输入Rss Feed的地址和图片的保存目录. (如:http://www.cnblogs.com/rss.aspx 或者http://blog.joycode.com/MainFeed.aspx,博客园的rss第一次成功了,后面几次都失败了,可能是我网络的问题,在google的个性化主页上,博客园的rss总是失败,但是博客堂的就可以,不知道为什么)
  6. 点击OK关闭选项窗口.

更改以后,我们把参数换成/s就可以看到我们自定义以后的屏保效果了。

 

把屏保安装到你的电脑上

1.    保存好目前的项目,File – SaveAll

2.    使用 Build - Build Solution创建屏保的可执行程序.

3.    在项目文件夹的Debug目录找到屏保的Debug版本的可执行程序,默认为ScreenSaver1.exe,把后缀名改为scr,即ScreenSaver1.scr

4.    然后选中这个文件点击右键选择安装

5.    点击预览就可查看

6.    点击配置可以运行选项窗口让我们自定义Rss Feed和图片保存目录

确定以后就把我们的屏保安装在我们的电脑上了。

 

扩展

程序运行以后是自动按次序显示各Item的内容的,这让心急的我们很是苦恼,所以我们可以自己扩展程序,使用键盘控制Item选择,步骤如下:

1.    Solution Explorer, 右击 ScreenSaverForm.cs 选者View Designer

2.    在属性的下拉框选者ScreenSaverForm

3.    点击事情按钮(那个有闪电图标的按钮)]

4.    找到KeyDown事件,双击(其实我们发现已经有事件处理方法了)

使用以下代码代替 Close();

switch (e.KeyCode)

            
{

                
case Keys.Down:

                     
// Rotate down through the articles.

                     rssView.NextArticle();

                     
break;

                 
case Keys.Up:

                     
// Rotate up through the articles.

                     rssView.PreviousArticle();

                     
break;

                 
default
                     Close();

                     
break;

             }
  

保存文件,F5运行

这是我们就可以使用按钮控制Item选择了。

更多提示

这个屏保被设计为非常容易自定义和扩展,以下想法可以帮助你自己扩展程序:

  • 选择你自己的内建默认图片:
    你自己选择默认图片
  • 在右上角显示天气信息:
    使用web service比如说这个来取得天气信息,然后显示在屏保的右上角。 (这个俺不会

     -_-~~)

  • 创建你自己的屏保:
    ScreenSaverForm 替换为你自己的Windows Form来显示一个完全不同的屏保,你可以考察一些系统的屏保来获取一些灵感,然后你可以继续使用Program.cs 文件来操作命令行参数来支持新的屏保
  • 多个 RSS feeds:
    扩展选项窗口来让你的用户选择一个Rss feeds集合,你可以使用以下想法:
    1. 在选项窗口让用户选择一个OPML文件,这个文件保存着一个rss feeds列表
    -或者-
    2.
    在选项窗口让用户来组合一个列表的rss feed
    一个随机的news feed可以在屏保运行的时候被选择
  • 完成RSS Class的实现:
    Starter Kit提供的Rss 类并不支持整个 RSS 2.0 specification. 剩下的任务可以由你完成,然后你可以把这个类封装为dll,以便在另一个程序中使用
  • 重用Rss classes:
    Rss classes可以在另一个程序中重用。你可以在写你自己RSS阅读器或者创建一个系统任务栏程序每隔一个小时弹出一篇文章。



这个字体似乎这个编辑器不支持,怎么成了这样,汗........

posted on 2005-12-02 14:53  小新0574  阅读(1624)  评论(0编辑  收藏  举报