今日是:
  小新技术网 -=> 程序开发 -=> VB编程 -=> 正文

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

作者:[本站编辑] 来源:[本站] 浏览:[] 评论:[]  【字体:
程序可以保护显示屏不被损坏,同时节约能源。作为屏幕保护程序,应该具有如下特性:  

  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的系统下即可。  ]]>
下一篇:Jave学习:巧用jabc进行数据库的操作
上一篇:已到尽头
IP查询、IP签名
打印 】【 收藏 】【 评论 】【 推荐
相关文章 栏目推荐文章 栏目热门文章
 推荐文章 学习,是一条漫长的道路 
 普通文章 用VB跟我学做记事本(很简单哟) 
 普通文章 VB中简单木马程序的编写 
 普通文章 利用VB6.0设计屏幕保护程序 
 普通文章 Jave学习:巧用jabc进行数据库的操.. 
 普通文章 VB能做什么  
 普通文章 用VB学做“黑客”程序 
 普通文章 用VB在窗口中显示动画图标 
 普通文章 浅谈用VB6.0编写“特洛伊木马”程.. 
最新文章 最新推荐文章 热门文章
 普通文章 简历封面 
 普通文章 简历封皮(二) 
 推荐文章 用好Windows共享 确保安全 
 推荐文章 多点出发:消除局域网遗留共享痕迹.. 
 普通文章 只需三步!闪盘立刻变成启动盘 
 普通文章 战无不胜 一目了然看穿局域网 
 普通文章 Win 2000/XP在局域网内批量升级 
 普通文章 黑客经常更改的系统配置文件及注册.. 
 推荐文章 用好Windows共享 确保安全 
 推荐文章 多点出发:消除局域网遗留共享痕迹.. 
 推荐文章 Ghost二十个鲜为人知的实用参数 
 推荐文章 ASP.NET程序中常用的三十三种代码.. 
 推荐文章 黑客利用Ms05002溢出找“肉鸡” 
 推荐文章 C# 3.0语言详解之基本的语言增强 .. 
 推荐文章 Ghost所有运行错误代码完全大揭秘.. 
 推荐文章 利用Java Swing 实现游戏开发 
 推荐文章 秘籍:QQ头像任意换 
 普通文章 提升QQ等级 QQ挂机升级外挂  
 普通文章 QQ100个经典个性签名!可爱经典贴图.. 
 推荐文章 BIOS设置图解教程(多图) 
 普通文章 惊现腾讯QQ刷等级漏洞 
 普通文章 求职简历封皮  
 普通文章 突破在线观看电影 
 普通文章 GIF动画图片制作教程 
点击查看更多评论
笔名:
评论:
[评论将在5分钟内被审核,请耐心等待]
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright ©2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网  冀ICP备05002857号