VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - VB6.0编程"杂耍"
发表评论(0)作者:不详, 平台:VB6.0+Win98, 阅读:13087, 日期:2002-01-23
VB6.0编程"杂耍"


--------------------------------------------------------------------------------

作者:孙寿天 张广坡   
    
     [编者语]自从《全面禁止Windows桌面、任务栏、系统按键》这篇文章发表以后(发表于本刊2001年6月号),一些读者朋友来信来电发mail说他们对这方面的文章很感兴趣,希望本刊能再登载一些这样的文章。在这里,小编非常感谢读者朋友们对本刊的关心,为了满足您们的要求,小编这里又准备了这篇“VB6.0编程‘杂耍’”,希望您们能够喜欢。
     杂耍一、防止自身被多次运行
     如果你不希望你的VB应用程序被用户通过多次双击图标而重复运行,导致内存不足或其它意外,你可以在程序中增加以下几行,检查发现如果程序已经被运行过,则给出提示后结束:
     
     Private Sub Form_Load()
       If App.PrevInstance then
         MsgBox "嘟....,程序正在运行,请检查窗口是否被最小化。:-)"
       End If
     End Sub
     
     ◆说明:App是VB内置的应用对象,通过访问他的属性可以得到应用程序的标题、版本信息、可执行文件和帮助文件的路径及名称等信息,尤其是App.Path很经常用到的。
     ◆可能的用途:各种不希望被多次运行的程序,例如数据库应用程序等。
     
     杂耍二、右键菜单
     Windows的桌面和许多流行软件都提供右键菜单功能,就是在相应控件上单击鼠标右键时弹出菜单实现某些功能,方便快捷,许多编程爱好者也很想实现类似功能吧,方法如下:
     1、利用VB的菜单编辑器(Menu Editor)编辑你希望弹出的菜单(子选单),并将此菜单的Visible属性设置为False。
     2、在相应控件的MouseDown事件中编写程序,来调用编辑好的菜单,假设菜单名为demoMenu,并且相应控件名称是ListView1,程序源码如下:
     
     Private Sub ListView1_MouseDown (Button As Integer, ShIft As Integer,X As Single, Y As Single)
       If Button = vbRightButton Then
         PopupMenu demoMenu
       End If
     End Sub
     
     ◆说明:可以用在包括窗口的任何控件中,关键是弹出菜单技术。
     ◆可能的用途:程序最小化到任务栏右面,缩小为一个图标,经常使用这种技巧。
     
     杂耍三、访问指定的网址和发Email的简单方法
     让自己的程序打开浏览器访问某个网址或者系统指定的默认邮件服务程序,通常的方法是采用API函数ShellExecute,其实我们还有更简单的方法,只用一句程序变可完成,免去调用API函数的麻烦:
     1、访问指定的网址:
     Shell "start http://tyvb.csol.net"
     
     2、给指定的电子信箱发Email:
     Shell "start mailto:suinky@yeah.net?subject=你好"
     
     ◆说明:
     1、其中的http://tyvb.csol.net你可以根据需要指定,系统会根据默认的浏览器打开指定的网页。
     2、其中hbsst@china.com可以变成你自己想要发送邮件的地址,subject后面的是待发送电子邮件的主题,系统会根据默认的电子邮件服务程序,发送邮件。
     ◆可能的用途:用在"关于"窗口中,使用户方便和软件作者联系。
     
     杂耍四、鼠标变脸
     为了使你的程序更专业,在需要等待的过程中可做如下处理:
     处理过程前:
     Screen.MousePointer = vbHourglass
     处理过程后
     Screen.MousePointer = vbDefault
     ◆说明:MousePointer还可以取VbArrow等各种系统经常用到的鼠标指针的类型,满足您不同的应用,甚至还可以自己定制。
     ◆可能的用途:用在操作时间较长,需要用户等待的程序中。
     
     杂耍五、播放AVI文件
     AVI文件是语音和影像同步组合在一起的文件格式。使用VB6.0中的多媒体控件MMControl设计播放AVI文件的程序方法如下:
     在Form1上建立一个多媒体控件MMControl1,并建立一个图片框Picturer1,并设定MMControl对象的按钮属性。在应用程序所在目录放上自己喜欢的AVI文件,并命名为demo.avi
     在窗口加载的事件里写如下代码:
     
     Private Sub Form_Load()
       MMControl1.DeviceType = "AVIVideo"
       MMControl1.FileName = App.Path & "demo.avi"
       MMControl1.hWndDisplay = Picture1.hWnd
       MMControl1.Command = "Open"
     End Sub
     
     程序运行后,单击播放键,慢慢欣赏吧。
     ◆说明:
     1、DeviceType="AVIVideo",是设定MCI播放媒体的种类。多媒体控件除了可以播放AVI文件还可以播放WAV文件和MID文件和VCD文件,只要把AVIVIDEO变成WAV、MID、CDaudio和MPEGVideo即可,当然其他语句也要相应改变。
     2、HwndDisplay=Picture1.hWnd,是把AVI文件在图形框中播放,如果没有这一行,将自动开启一个窗口播放。
     ◆可能的用途:
     1、实现简单的多媒体教学程序或小游戏软件。
     2、可以放在程序的启动窗口里做一个动态的欢迎画面。
     
     杂耍六、播放Flash文件
     Flash是一种矢量格式的动画文件,可以包含动画,声音,超文本链接,而文件的体积却很小,如何用VB播放呢?用MicroMedia公司提供的空间Swflash.ocx就可以,方法如下:
     将Flash控件放到窗体上,并调整至适当的大小,设置scale model属性为2,在应用程序目录下放一个Flash文件,假设为demo.swf,在窗口上添加命令按钮Command1。
     程序代码如下:
     
     Private Sub Command1_Click()
       ShockwaveFlash1.Movie = App.Path & "demo.swf"
       ShockwaveFlash1.Playing = True
     End Sub
     
     ◆说明:要获得SwFlash.ocx只要安装Flash4.0即可,加载的方法是:在工具箱上单击右键,选择部件,在部件窗口的控件列表中选择Shockwave flash,然后确定,Flash控件就被加到工具箱上。
     ◆可能的用途:利用Flash的功能实现漂亮的菜单等趣味程序。
     
     杂耍七、重新启动计算机
     
     1、API函数ExitWindowsEx,可以用来实现重新启动计算机或者关闭Windows。
     把下面的这段代码拷贝到模块得声明部分:
       Public Const EWX_LOGOFF = 0
       Public Const EWX_SHUTDOWN = 1
       Public Const EWX_REBOOT = 2
       Public Const EWX_FORCE = 4
       Public Const EWX_POWEROFF = 8
       Declare Function ExitWindowsEx Lib "user32" Alias _
         "ExitWindowsEx" (ByVal uFlags As Long, ByVal dwReserved _
         As Long) As Long
     
     如果你想要重新启动计算机,只需要插入下面的代码就可以了:
     Call ExitWindowsEx(EWX_REBOOT, 0)
     
     ◆说明:
     参数说明如下:
     EWX_FORCE   所有的进程都被强制终止。
     EWX_LOGOFF  所有的进程被强制终止,并且用户退出登录(logged off)。
     EWX_POWEROFF 计算机系统被关机,并且如果支持节电特性,则计算机被物理关机。
     EWX_REBOOT  计算机系统被关机并重新启动。
     EWX_SHUTDOWN 计算机被物理地安全地关机。
     可根据需要使用相应的参数,还可以把这几个常量加起来作为组合的功能呢。
     
     ◆可能的用途:
     在安装程序修改了系统文件后,需要重新启动Windows来完成安装时,这段代码就显得特别有用了。 还有就是给朋友一个胡闹的小东西(啊,我跑.....)
     
     好了,还有很多"杂耍",限于篇幅原因,只有以后再讲了,欢迎VB爱好者和我交流。