自己动手写屏保

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 yolle 的 blog

屏保程序非常简单,它只是一个扩展名为“.scr”,全屏运行,并符合一定规则的应用程序,我们可以用任何语言来进行开发。
屏保程序放置在系统的system32目录下面,被系统自动调用执行。当系统执行屏保程序时,它会要求带上一个不同的命令参数,以实现不同的功能,如正常运行,预览,设置等。我们只要在程序中为不同参数实现不同的功能,我们的程序就可以被系统正常地调用了。以下列出全部的命令参数及其意义:

命令行参数 意义详解
/s 正常运行屏保程序(到时间系统自动调用), 一般要求为接收到键盘事件时退出,屏蔽鼠标事件及其显示
/a 允许在用户结束屏保运行时,显示一个密码输入对话框(win98需要自已实现对话框,win2000及以后可自动返回锁定时的登录对话框,此参数可以不必使用)
/c 在屏保选取配置时,显示本屏保程序的参数设置对话框
/p 在屏保选取配置时,预览屏保程序,一般要求为可接收键盘或鼠标事件后返返

在c#中我们可以这样实现:
using system;
using system.collections;
using system.componentmodel;
using system.drawing;
using system.windows.forms;
public class myscreensaver : system.windows.forms.form
{
 public static void main(string arg)
 {
  application.run(new myscreensaver(arg)); //把参数传到form中去
 }
 public myscreensaver(string arg)
 {
  //实现全屏显示
  this.width = screen.primaryscreen.bounds.width; 
  this.height = screen.primaryscreen.bounds.height;
  this.left = 0;
  this.top = 0;
  switch(arg.tolower())
  {
   case "/s":
    /*...正常运行实现代码*/
    break;
   case "/a":
    /*...密码对话框实现代码*/
    break;
   case "/c":
    /*...参数设置实现代码*/
    break;
   case "/p":
    /*...预览实现代码*/
    break;
   default:
    application.exit(); //其它情况退出
    break;
  }
  /*...其它代码*/
 }
 /*...它代码*/
}

程序成后,把生成的exe扩展名改变“.scr”,再复制到system32下便可。然后你就可以在桌面-->“显示属性”-->“屏幕保护程序”去选取,并进行其它相关的操作(设置,预览等)了.

本文关键:自己动手写屏保
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top