用VB制作屏幕保护程序

[ 2006-12-9 9:36:00 | By: 风吹雨点飘 ]
  利用Visual Basic 制作屏幕保护程序非常容易。本文将详细给大家介绍制作屏幕保护程序的方法。

  ---- 一. 基本编程思路

  ---- 大家都知道屏幕保护程序就是利用变换的颜色或图形以防止不变化的屏幕像素被损伤。所以,屏幕保护程序就是显示不断变化或移动的图形,并且当有鼠标移动或按键时能够终止的程序。

  ---- 1. 编制屏幕保护图形

  ---- 2. 隐藏鼠标

  ---- 用ShowCursor Windows API 函数我们可以实现隐藏鼠标。

  ---- 3. 检测鼠标和按键行为

  ---- 检测上述行为以便退出屏幕保护程序

  ---- 4. Windows 调用屏幕保护程序的参数命令

  ---- /a 在显示器属性对话框中单击了改变口令按钮。

  ---- /p 每当选中显示器属性对话框中屏幕保护程序标签时,在对话框显示预览效果。

  ---- /c 在显示器属性对话框中单击了设置按钮。

  ---- /s 在显示器属性对话框中单击了预览按钮或屏幕保护程序被系统正常调用。

  ---- 5. 编译屏幕保护程序

  ---- 其实任何VB应用程序都可作为屏幕保护程序来运行,但为了被Windows 95 所调用,需要将它作为屏幕保护程序来编译。首先进入VB5编程环境,编好程序后选择/File/Make project菜单项,然后在File Name文本框中将后缀名EXE改为SCR。最后单击OK按钮,将生成的SCR文件拷到Windows目录下,就完成了屏幕保护程序的创建。

  ---- 二. 实例

  ---- 下面就用一个实例给大家详细说明屏幕保护程序的制作。

  Option Explicit

  Dim quitflag As Boolean ‘声明终止程序标志变量

  Dim lleft

  ‘声明隐藏或显示鼠标的API函数

  Private Declare Function ShowCursor Lib "user32"

  (ByVal bShow As Long) As Long

  ‘检测鼠标单击或移动

  Private Sub Form_Click()

  quitflag = True

  End Sub

  Private Sub Form_MouseMove(Button As Integer,

  Shift As Integer, X As Single, Y As Single)

  Static xlast, ylast

  Dim xnow As Single

  Dim ynow As Single

  xnow = X

  ynow = Y

  If xlast = 0 And ylast = 0 Then

  xlast = xnow

  ylast = ynow

  Exit Sub

  End If

  If xnow < > xlast Or ynow < > ylast Then

  quitflag = True

  End If

  End Sub

  ‘检测按键

  Private Sub Form_KeyDown(KeyCode As Integer,

  Shift As Integer)

  quitflag = True

  End Sub

  Private Sub Form_Load()

  Dim X As Long

  lleft = 0

  ‘横向滚动文字的起始X坐标

  If App.PrevInstance = True Then

  ‘用APP对象的PrevInstance属性

  Unload Me

  ‘防止同时运行屏幕保护程序的两个实例

  Exit Sub

  End If

  Select Case Ucase$(Left$(Command$, 2))

  ‘装载命令行参数

  Case "/S" ‘在显示器属性对话框中单击了

  预览按钮或屏幕保护程序被系统正常调用。

  Show

  ‘全屏显示Form1窗体

  Randomize

  ‘初始化随机数生成器

  X = ShowCursor(False)

  ‘隐藏鼠标

  BackColor = vbBlack

  Do

  Timer2.Enabled = True

  ‘启动Timer2 ,显示屏幕保护滚动文字

  DoEvents

  ‘转让控制权,以便检测鼠标和按键行为

  Loop Until quitflag = True

  ‘运行屏幕保护滚动文字直至有鼠标和按键行为

  Timer2.Enabled = False

  ‘终止滚动文字

  Timer1.Enabled = True

  ‘启动Timer1,退出屏幕保护程序

  Case Else

  Unload Me

  Exit Sub

  End Select

  End Sub

  Private Sub Form_Unload(Cancel As Integer)

  Dim X

  X = ShowCursor(True)

  ‘显示鼠标

  End Sub

  Private Sub Timer1_Timer()

  Unload Me

  ‘退出屏幕保护程序

  End Sub

  Private Sub Timer2_Timer()

  显示横向滚动文字

  lleft = lleft + 100

  If lleft >= 11810 Then

  lleft = 0

  Lab1.Top = Int(Rnd * 7000)

  End If

  Lab1.Left = lleft

  Timer2.Enabled = False

  End Sub

  转自: 阿里西西WEB开发网站

发表评论:

    大名:
    密码: (游客无须输入密码)
    主页:
    标题:
    正在载入数据,请稍候……