用VB制作屏幕保护程序 王兵、王波 1999年 第49期 13版   利用VB制作屏幕保护程序非常容易。本文将详细给大家介绍制作屏幕保护程序的方法。   一、基本编程思路   大家都知道屏幕保护程序就是用变换的颜色或图形以防止屏幕荧光粉被损伤。当有鼠标移动或按键时能够终止它。   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目录下,就完成了屏幕保护程序的创建。   二、实例   下面就用一个实例给大家详细说明屏幕保护程序的制作。   名称 属性值   Form1   BorderStyle=0-None ′取消标题栏和最大化、最小化按钮   WindowState=2-Maximized ′窗体最大化   Timer   Name=Timer1   Interval=1 ′时间间隔为1毫秒   Enabled=False   Timer   Name=Timer2   Interval=50   Enabled=False   Label   Name=lab1   Caption=电脑爱好者   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 UCaseS(LeftS(CommandS, 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