VB 程序设计

10个成员

在VB中模拟实现邮件传输

发表于 2016-12-26 3839 次查看
VB作为一种面向对象的Windows应用程序的开发软件,以其功能强大和简单易用的编程手段受到广大编程人员的喜爱。VB中提供了许多用于Windows程序设计的控件和大量的函数,本文就将告诉您怎样利用VB中的函数来实现邮件传输的功能。
首先我们在服务器上按照不同的帐号建立了不同的工作目录,采用NFS协议将多台PC终端连接到服务器。这样,邮件发送的问题就变成了文件从一个目录移到另一个目录的问题,在VB中可通过简单的Filecopy与Kill语句来完成。下面遇到的问题是如何接收到一个新邮件,并在应用中及时提醒用户邮件的到来。这就需要编写一个时刻运行的检测程序,在应用中直接加入这一过程后则原来应用中的操作得不到及时响应。这里我们采用了Dir,DoEvents,Shell三个函数解决了这个问题。
Dir:用于判断目录下是否有文件,及某个文件是否存在。
DoEvents:使CPU返回Windows控制,响应挂起事件。
Shell:在应用中执行其它应用程序。
Windows是一个多任务的操作系统,它在执行任务同时可检测事件并响应它。
利用这一特性,我们采用DoEvents和Shell可实现多个程序的同时运行。当应用程序启动后,我们用Shell同时启动P2程序。P2程序每隔10秒检测一次缓冲目录,若有文件到达则提示警告信息。一切操作过程中,用户感觉不到应用的中断。这里用DoEvents函数实现了应用程序的响应,用Dir函数检测缓冲目录,当应用程序退出时,同时生成一个标志文件FLAG.TXT。P2程序检测到后,结束运行并删除标志文件。警告信息可以使用声音,图像等多种方式,可根据各自的需求自行设计,编译后嵌入P2程序中,这里就不一一详述了。
程序代码如下:
应用程序P2:
Private Sub Form—Load()
‘程序说明部分:
Dim yy
Dim a,b,c As String
Dim ab As Integer
a=Time
a=Mid(a,7,1)'取当前时间秒数
Do
b=Time b=Mid(b,7,1)
If((Int(a)+1)Mod6)=Int(b)Them
'事件经过十秒
filename=Dir("C:\inbox\”,vbNormal)
'检测收件箱中有无邮件到达
If filename=""Then
Else Beep'若有邮件到达则震铃一次
End If a=b
End If checkfile=Dir("C:\tmp\flag.txt")
'检测应用程序是否结束
If checkfile="flag.TXT"Then
Kill"c:\tmp\flag.txt"
'若结束则删除标志文件并退出运行
GoTo exit1 End If
yy=DoEvents'响应其他挂起事件
Loop exit1:End End Sub
应用程序P1:
'调用程序P2.exe
Private Sub Form—Load()
'应用程序中其他初始化部分
b="c:\p2.exe“
retval=Shell(b,0)'将程序运行在后台
End Sub
'P1退出是关闭程序P2
Private Sub Command1—Click()
Open yhpath &"yhlog.log"ForAppendAs#2'应用程序退出写入日志文件
Print#2,Now,yhnamel;"用户退出"
Close#2
Open"c:\tmp\flag.txt"For Output As #1
'生成退出标志文件
Colse#1 End End Sub
本程序在简体中文Win95,Visual Basic 4.0上编译通过。利用上面介绍的方法,我们可以编写更多并行并发的应用程序,提高我们计算机的利用效率。

 

发表回复
你还没有登录,请先登录注册