Andrew的CodeProject屏幕保护程序





5.00/5 (8投票s)
2002 年 5 月 20 日
3分钟阅读

220163

470
(又是)一个 Code Project 竞赛的屏幕保护程序,使用 C# 代码编写,(即将推出)有关代码中涉及的某些方面如何工作的详细信息。
引言
是的,伙计们,我的秘密被发现了! 我一直在为比赛开发屏幕保护程序。“咦?” 我听到你们都在说。 好吧,最近我真的很忙,所以不想大张旗鼓,然后又没有完成。 幸运的是,经过几个星期我的 C# 屏幕保护程序听起来更像是 F 自然调(groan),我终于设法及时完成了这个小东西,赶上了投票表的发布。
在我继续之前,请允许我向 Chris 致以衷心的感谢,首先感谢他抓住了 CP 比赛的绝妙想法,其次感谢他在他的机器上构建了最终的 .exe 文件,以使我免受 Beta 2 的困扰(哦,它们还在不断涌现!)。
以下是屏幕保护程序的主要功能简介
- 在单独的线程中下载数据,以免阻塞用户界面
- 检测用户是否处于脱机状态
- 如果与服务器的连接失败,将在五分钟后重试
- 令人毛骨悚然的图形
- 可为速度较慢的机器等用户自定义动画速度。
安装
安装就像馅饼一样简单
- 将 CP Screensaver.scr 复制到您的 Windows 系统文件夹中。
- 将 Images 文件夹作为 Windows 系统文件夹的子文件夹复制。
- 从“显示属性”中选择“CP Screensaver”。
完成!
工作原理
稍后回来查看! 将要介绍的主要领域是
- 双缓冲
- Alpha 混合(淡入淡出效果)
- 状态管理
- 多显示器支持(假设它确实像我预期的那样工作,请参见下文)。
多显示器
不幸的是,我没有运行多显示器系统,这意味着,虽然我添加了对多显示器的支持(不是特别高效的支持,我承认),但我无法在此类配置上测试保护程序。如果您能够使用多个显示器尝试使用该保护程序,我将有兴趣在文章底部的评论部分中听到您的成功/失败经历。
待办
屏幕保护程序在未来肯定还有一段路要走,但我暂时没有时间来处理它。以下是我计划要做的事情清单,大致想法如下
- 巧妙的动画背景,在升降平台灯光上使用 Alpha 混合
- 本地数据缓存,因此如果用户未连接,他们仍然可以从上次保护程序设法连接时看到帖子列表等。
- 更好地处理非常高和非常低的分辨率(也许以某种方式利用额外的空间?)
- 更好的多显示器支持
- 一些优化(有一些循环不变量需要整理,但没有什么太大的问题)
结论
好的 - 所以我希望你喜欢已经存在的东西。代码绝对不是最整洁的形式,因为我将这个项目用作边学边用 C# 的项目,所以可能存在一些粗糙的边缘,尽管总的来说它还是相当合理的。