转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
用VB 5.0设计屏幕保护程序         ★★★★

用VB 5.0设计屏幕保护程序

作者:闵涛 文章来源:闵涛的学习笔记 点击数:707 更新时间:2009/4/23 14:57:45
  使用Visual Basic 5.0很容易建立屏幕保护程序。实际上任何VB应用程序都可以作为屏幕保护程序来运行,只是有的程序更适于作为屏幕保护程序。要想使自己的应用程序成为Windows环境中屏幕保护程序,需要将该程序作为屏幕保护程序来编译。具体方法是:从File 菜单上选定Make EXE File,在Make EXE File对话框中作以下改动:不再建立带扩展名为EX E的可执行文件,而是把扩展名改为SCR。

 

  下面讨论一下在设计屏幕保护程序时应注意的几个问题。

1.如何防止同时运行屏幕保护程序的两个实例

  Visual Basic提供了一个App对象,它有一个PreInstance属性,如果当前已经有一个Vi sual Basic应用程序的实例在运行,就可把该属性设置为True,从而避免同时运行一个屏幕保护程序的多个实例。

  下面的代码显示App.PreInstance在屏幕保护程序中的实现:

If App.PreInstance=True then
Unload Me
Exit Sub
End If

  此外,还有一种更好的方法可以避免同时运行一个屏幕保护程序的多个实例。使用一个通知操作系统已经有一个屏幕保护程序被激活的Windows95 API函数SystemParametersInfo ,其声明如下:

Private Declare Function SystemParametersInfo Lib “user32” Alias “SystemP arametersInfoA” (
ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long ) As Long

  在窗体加载事件的开始对这个函数调用一次,并在窗体卸载事件期间再调用一次。这两个调用必须成对出现并且二者必须在屏幕保护程序的执行期间进行调用。

  以下是在窗体加载事件中对该函数的调用:

x=SystemParametersInfo(17,0,ByVal 0&,0)

  以下是在窗体卸载事件中对该函数的调用:

x=SystemParametersInfo(17,1,ByVal 0&,0)

2.如何在屏幕保护程序中隐藏鼠标光标

  ShowCursor API函数允许在Visual B c应用程序中隐藏或显示鼠标光标,Windows通过更改一个计数变量来跟踪鼠标光标的可视性:每次用参数值True调用ShowCursor使该计数递增,用参数值False调用ShowCursor使该计数递减,如果该计数为0或者更小,鼠标光标就自动隐藏起来。以下是ShowCursor API函数的声明:

Private Declare Function ShowCursor Lib “user32” (ByVal bShow As Long ) As Long

  下面是两个使用ShowCursor函数的例子。

显示鼠标光标:

Private Sub ShowMouse()
While ShowCursor(True)<=0
Wend
End Sub

隐藏鼠标光标:

Private Sub HideMouse()
While ShowCursor(False)>0
Wend
End Sub

3.如何检测鼠标的移动

  MouseMove事件用来检测鼠标的移动,当应用程序启动时,甚至在鼠标实际上并未移动的情况下,MouseMove事件都会触发一次。所以第一次触发MouseMove事件时,只是记录鼠标当前位置,仅当鼠标真正从其起始位置移开时,才终止屏幕保护程序。具体实现代码如下:

Private Sub Form_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
第一次触发MouseMove事件,记录当前位置
If XLast = 0 And YLast = 0 Then
XLast = XNow
YLast = YNow
Exit Sub
End If
仅当鼠标移动足够迅速(一次2个像素以上)才恢复屏幕 If Abs(XNow - XLast) > 2 Or Abs(YNow - YLast) > 2 Then
QuitFlag = True
End If
End Sub

4.如何检测鼠标单击

  Form_Click事件用来检测鼠标单击,Form_Click事件的具体代码如下:

Private Sub Form_Click()
鼠标单击,结束屏幕保护程序
QuitFlag=True
End Sub

5.如何检测键盘的活动

  Form_KeyDown事件用来检测键盘的活动,当按下任何一个键(包括Shift键)时,都能结束屏幕保护程序。Form_KeyDown事件的具体代码如下:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
按下键盘,结束屏幕保护程序
QuitFlag = True
End Sub

  通常,屏蔽保护程序中几个重要属性设置值如下:Form窗体BorderStyle为0-None,Co ntrolBox为False,KeyPreview为True,MaxButton和MinButton为False,WindowState为2-Maximized,定义窗体级变量QuitFlag(Dim QuitFlag as Boolean)。Timer控件(在Form窗体中)Enabled属性在设计环境中设置为False。

  本文给出一个完整的屏幕保护程序实例,其演示效果为:把当前的显示复制到一个全屏幕的窗体中,然后随机地在屏幕上画一些实心彩色小圆,并随机显示彩色字样“Baby,I love you!”。同时,在屏幕底部有一移动的图片框,读者可以在设计环境中添加自己喜欢的图片。在本屏幕保护程序中,设置Timer控件的Name属性为tmrExitNotify;在窗体底部添加一个PictureBox控件,设置其Name属性为picture1。

  在调试本程序时,有一技巧值得说明,可将Form_Load事件中Select Case…End Select 语句稍作修改如下:

●将Case “/S”注释掉,在其下添加Case Else语句;

●将Case Else/Unload Me/Exit Sub三条语句注释掉。

  这样,可在VB5.0环境下调试本程序,并预览演示效果。在调试完成后,再将上述修改恢复原样,编译成后缀为.SCR的文件,即可得到屏幕保护程序。

155


[VB.NET程序]用VB 5.0实现多画面播放功能  [VB.NET程序]用VB 设 计VCD 播 放 器
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台