利用VB6.0设计屏幕保护程序

转载 2005年03月02日 17:26:00
Windows操作平台设有一个屏幕的保护措施,即屏幕保护功能。经常在Windows操作平台上使用电脑的人们对系统提供给我们的几个屏幕保护程序是不是感到非常平常了,没有新鲜感了,是不是想自己设计屏幕保护程序。下面介绍如何利用VB设计用户自己的屏幕保护程序。屏幕保护程序可以保护显示屏不被损坏,同时节约能源。作为屏幕保护程序,应该具有如下特性:

  1)屏幕保护程序运行时,鼠标光标被自动隐藏,在程序结束时,光标显示。2)当单击、移动鼠标或按下键盘时,屏幕保护结束,回到正常操作状态。为了实现这些特性,在编写VB应用程序时,可以采用如下方法:

  1、改变窗体属性通常VB应用程序的窗体都采用有边框的窗体外观,但作为屏幕保护程序,应设置窗体为无边框,且为最大化。

  2、隐藏及显示鼠标光标在Visual Basic应用程序中隐藏及显示鼠标光标需要运用Windows的API函数,该函数名为ShowCursor。当用参数值True调用时显示鼠标光标,当用参数值False调用时,鼠标光标自动隐藏。

  3、检测鼠标移动VB中有一个检测鼠标移动的对象事件MouseMove事件。MouseMove事件通常在应用程序启动时就会触发,有时在鼠标并未移动的情况下,MouseMove事件仍有可能被触发。因此如果在程序中直接用MouseMove事件检测鼠标是否发生了移动,并不能正确反映鼠标的移动状况。应该在MouseMove事件中编写代码加以控制。

  为了正确反映鼠标的移动,先用变量记录下程序运行时的鼠标当前位置,然后用另外一组变量记录鼠标移动后的位置,当鼠标移动前后的位置差大于一定范围时,触发MouseMove事件。编写代码如下:

Private Sub Form-MouseMove(Button As Integer,shift As Inteqer,X As Single,Y As Single)
 Static currentX,currentY As Single
 Dim orignX,orignY As Single
 ’把当前的鼠标值赋给orignX和orignY
 orignX=X
 orignY=Y
 ’初始化currentX和currentY
 if currentX=0 and currentY=0 Then  
  currentX=orignX  
  currentY=orignY 
  Exit Sub
 Endif
 ’当鼠标移动大于一个象素时,显示鼠标光标并退出程序
 If Abs(oriqnX-currentX)>1 or Abs(orignY-currentY)>1Then 
  X=ShowCursor(True) 
  End
 Endif
EndSub

  4、检测鼠标单击在Visual Basic中,单击事件是由“Click”触发的。当屏幕保护程序运行时遇到单击事件,则程序运行终止。代码编辑如下:

Private Sub Form-Click()
 X=ShowCursor(True)
 End
EndSub


  注意在结束之前先设光标的显示为真,以免在程序结束后丢失光标。

 5、检测键盘上各按键的状态Visual Basic中的键盘活动由KeyDown触发。代码与单击事件的代码一样。

Private Sub Form-KeyDown(KeyCode As Integer,Shift As Integer)
 X=ShowCursor(True)
 End
EndSub

  下面我们将设计一个简单的屏幕保护程序,该程序运行时,从左至右显示一张图片,图片从屏幕左边出现,至屏幕右面消失,象拉幕一样,且重不停复该过程。假设图片文件名为PIC.BMP,并存放在Windows文件夹中。实际操作如下:

  创建一新工程,在窗体中添加一图片框和一个Timer控件。设置它们的属性如下:

Form   
BackColor=&H80000007& 
BorderStyle=0  ’None
MaxButton=False 
MinButton=False  
Windowstate=2 ’Maximized
Timer   
Intelval=5
PictureBox 
BackColor=&H80000007&  
BorderStyle=0 ’None  
AutoSize=Ture

  输入代码如下:

’在窗体的声明部分声明ShowCursor函数。
Private Declare Function ShowCursor Lib“user32”(By Val bShow As Long) As Long
 ’在窗体上单击鼠标时退出程序
 Private Sub Form-Click() 
  X=ShowCursor(True) 
  End 
 EndSub
 ’在窗体上按下按键时退出程序
 Private Sub Form-KeyDown(KeyCode As Integer,Shift As Integer) X=ShowCursor(True) 
  End
 EndSub
 ’加载窗体时隐藏鼠标
 Private Sub Form-Load() 
  Dim X As Long 
  X=ShowCursor(False) 
  Picture1.Visible=False 
  Picture1.PICTure=LoadPICTure(“C:/windows/PIC.BMP”) 
  Picture1.Left=-Picture1.Width
 EndSub
 ’在窗体上移动鼠标时退出程序
Private Sub Form-MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)
 Static currentX,currentY As Single
 Dim orignX,orignY As Single
 ’把当前的鼠标值赋给orignX和orignY
 orignX=X
 orignY=Y
 ’初始化currentX和currentY
 If currentX=0 And currentY=0 Then  
  currentX=orignX  
  currentY=orignY  
  ExitSub  
 EndIf
 If Abs(orignX-currentX)>1 Or Abs(orignY-currentY)>1
  Then X=ShowCursor(True)
  End   
 EndIf
EndSub
Private Sub Picture1-Click() 
 X=ShowCursor(True)
 End
EndSub
Private Sub Picture1-KeyDown(KeyCode As Integer,Shift As Integer)
 X=ShowCursor(True)
 End
EndSub
Private Sub Picture1-MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)
 Static Xlast,Ylast As Single
 Dim Xnow,Ynow As Single
 Xnow=X
 Ynow=Y
 If Xlast=0 And Ylast=0 Then
  Xlast=Xnow
  Ylast=Ynow
  ExitSub
 EndIf
 If Abs(Xnow-Xlast)>1 Or Abs(Ynow-Ylast)>1 Then
  X=ShowCursor(True)
  End
 EndIf
EndSub
Private Sub Timer1-Timer()
 Picture1.Visible=True
 Picture1.Top=(Form1.Height-Picture1.Height)/2
 Picture1.Left=Picture1.Left+50
 If Picture1.Left>Form1.Width Then
  Picture1.Left=-Picture1.Width
  EndIf
 EndSub

  将以上代码编译生成可执行文件,在保存文件对话窗中输入文件名称时把扩展名改为”SCR”,最后将生成的屏幕保护程序添加到Windows的系统下即可。

Windows屏幕保护程序的制作

Windows屏幕保护程序的制作 前些日子看了阿卓工作室的一篇关于如何制作屏保程序的文章及其示例,我便想自己做一个玩玩,所以按他说的做,结果不行,所以就在MSDN中搜索了下,得到这么一篇文章...
  • Eternalze
  • Eternalze
  • 2015年06月01日 15:19
  • 2489

Android下屏保程序的开发--须知

1、注册一个BroadcastReceiver,用于接收ACTION_SCREEN_OFF事件,当接收到这个事件时,打开自定义的屏保画面。 Intent.ACTION_SCREEN_OFF. In...
  • wh_19910525
  • wh_19910525
  • 2013年01月26日 15:54
  • 10259

Android APP一段时间无操作显示屏保

Android TV 视频播放器的屏保
  • u010072711
  • u010072711
  • 2015年11月29日 14:36
  • 8241

vb6.0程序设计教程

  • 2009年10月26日 16:31
  • 32KB
  • 下载

密码登录验证程序设计,VB6.0源代码编写

  • 2009年06月15日 16:15
  • 2KB
  • 下载

[vb6.0] 模拟鼠标操作, 一个自用多次单击类,可单击窗体或屏幕

添加一个类模块,命名为:clsClick 以下为类代码: Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, By...
  • boys1999
  • boys1999
  • 2015年02月22日 23:18
  • 709

精彩编程与编程技巧-vb6.0应用程序的启动与退出设计...

  • 2009年10月10日 17:24
  • 2KB
  • 下载

VB6.0程序设计基础教程PPT

  • 2011年06月13日 22:02
  • 2.65MB
  • 下载

组合框,下拉框等的应用程序设计,VB6.0源代码编写

  • 2009年06月15日 15:30
  • 411KB
  • 下载

VB6.0程序设计教程与实训PPT,北京希望电子出版社出版

  • 2009年02月28日 12:19
  • 3.1MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用VB6.0设计屏幕保护程序
举报原因:
原因补充:

(最多只允许输入30个字)