在VB中模拟实现邮件传输
2008-02-23 06:57:56来源:互联网 阅读 ()
首先我们在服务器上按照不同的帐号建立了不同的工作目录,采用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上编译通过。利用上面介绍的方法,我们可以编写更多并行并发的应用程序,提高我们计算机的利用效率。
上一篇: 在VB中利用UDP协议编写聊天程序
下一篇: 用Winsock实现点对点通信
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash