当前位置:编程学习 > VB >>

用VB怎么制作出屏幕保护程序

用VB制作屏幕保护程序啊

答案:利用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

---- 以上程序在HP 586/133上调试通过。

上一个:VB中的是listItem什么定义变量
下一个:VB中模块与窗体有何区别与联系。

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,