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

2016-02-19 20:14 19 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐利用VB6.0设计屏幕保护程序,赶紧看过来吧!

【 tulaoshi.com - 编程语言 】

屏幕保护程序可以保护显示屏不被损坏,同时节约能源。作为屏幕保护程序,应该具有如下特性:

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

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

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

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

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

  PrivateSubForm-MouseMove(ButtonAsInteger,shiftAsInteqer,XAsSingle,YAsSingle)

   StaticcurrentX,currentYAsSingle

   DimorignX,orignYAsSingle

   ’把当前的鼠标值赋给orignX和orignY

   orignX=X

   orignY=Y

   ’初始化currentX和currentY

   ifcurrentX=0andcurrentY=0Then  

  currentX=orignX  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  currentY=orignY 

  ExitSub

   Endif

   ’当鼠标移动大于一个象素时,显示鼠标光标并退出程序

   If Abs(oriqnX-currentX)1orAbs(orignY-currentY)1Then 

  X=ShowCursor(True) 

  End

   Endif

  EndSub

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

  PrivateSubForm-Click()

   X=ShowCursor(True)

   End

  EndSub

  注意在结束之前先设光标的显示为真,以免在程序结束后丢失光标。
  5、检测键盘上各按键的状态VisualBasic中的键盘活动由KeyDown触发。代码与单击事件的代码一样。

  PrivateSubForm-KeyDown(KeyCodeAsInteger,ShiftAsInteger)

   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函数。

  PrivateDeclareFunctionShowCursorLib“user32”(ByValbShowAsLong)AsLong

   ’在窗体上单击鼠标时退出程序

   PrivateSubForm-Click() 

  X=ShowCursor(True) 

  End 

   EndSub

   ’在窗体上按下按键时退出程序

   PrivateSubForm-KeyDown(KeyCodeAsInteger,ShiftAsInteger) X=ShowCursor(True) 

  End

   EndSub

   ’加载窗体时隐藏鼠标

   PrivateSubForm-Load() 

  DimXAsLong 

  X=ShowCursor(False) 

  Picture1.Visible=False 

  Picture1.PICTure=LoadPICTure(“C:windowsPIC.BMP”) 

  Picture1.Left=-Picture1.Width

   EndSub

   ’在窗体上移动鼠标时退出程序

  PrivateSubForm-MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

   StaticcurrentX,currentYAsSingle

   DimorignX,orignYAsSingle

   ’把当前的鼠标值赋给orignX和orignY

   orignX=X

   orignY=Y

   ’初始化currentX和currentY

   If currentX=0AndcurrentY=0Then  

  currentX=orignX  

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  currentY=orignY  

  ExitSub  

   EndIf

   IfAbs(orignX-currentX)1OrAbs(orignY-currentY)1

  Then X=ShowCursor(True)

  End   

   EndIf

  EndSub

  PrivateSubPicture1-Click() 

   X=ShowCursor(True)

   End

  EndSub

  PrivateSubPicture1-KeyDown(KeyCodeAsInteger,ShiftAsInteger)

   X=ShowCursor(True)

   End

  EndSub

  PrivateSubPicture1-MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

   StaticXlast,YlastAsSingle

   DimXnow,YnowAsSingle

   Xnow=X

   Ynow=Y

   IfXlast=0AndYlast=0Then

  Xlast=Xnow

  Ylast=Ynow

  ExitSub

   EndIf

   IfAbs(Xnow-Xlast)1OrAbs(Ynow-Ylast)1Then

  X=ShowCursor(True)

  End

   EndIf

  EndSub

  PrivateSubTimer1-Timer()

   Picture1.Visible=True

   Picture1.Top=(Form1.Height-Picture1.Height)/2

   Picture1.Left=Picture1.Left 50

   IfPicture1.LeftForm1.WidthThen

  Picture1.Left=-Picture1.Width

  EndIf

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

   EndSub

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

->

来源:http://www.tulaoshi.com/n/20160219/1623121.html

延伸阅读
在利用VB开发MIS系统的过程中,经常需要制作动态统计报表。本文就如何实现动态数据源下的分组交叉统计报表进行阐述,并结合实例给出编程指导。 在VB6.0的数据环境设计器中,我们可以利用“添加命令”一项来连接报表所需的数据源,同时利用“添加命令”属性中的分组与合计功能设计分组交叉统计报表的数据源,至此我们可以设计简单的数据存在...
因为手机短消息的发送是以PDU串的形式发送出去的,中文字符以Unicode码来表示,所以在发送中文短消息之前必须首先将中文字符转换为Unicode码,下面的函数将实现这个功能。这个函数主要应用到VB自带的一个格式转换函数:ChrW()将中文转换为Unicode码。 Public Function chg(rmsg As String) As String Dim tep As String ...
标签: vb
作为微软旗下一款优秀的RAD工具,VB在数据库应用开发方面的能力十分强大。微软设计了多种数据库访问方法,下面通过对VB访问数据库的多种技术进行深入剖析,并总结出实际开发中的几点经验。希望能够对那VB的初学者有所帮助。(注意,文中所有的描述均在Windows 2000 professional和Visual Basic 6.0的环境下进行的) 一. DAO、RDO、...
在使用以前版本的VisualBasic(或简称VB)开发应用程序时,程序开发人员通常需要同时打开两个应用程序——VisualBasic和一个数据库管理程序(例如Access)。现在,这些本来应该由数据库设计人员完成的任务已经成为VisualBasic集成环境的一个部分,而且,在设计完成上述任务时,VB6.0提供的一些数据工具在某些方面比数据库本身提供的工具还要好用...
在c++中是很容易实现,,因为c++可以操纵指针,,但是vb不是很好的玩这个,,所以需要通过类库来实现 说白了就是找个中间层,,让他翻译成vb能够认识的玩艺,,不说废话,,开始咯 中文实名无非是用ie 的iurlsearchhook,但是3721可不是这么玩得,,他是使用api hook拦截 ie commbox的消息,,,你根本就快不过他,,嘿嘿,,3721阴险把,,虽...

经验教程

216

收藏

56
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部