程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 在VB中模擬實現郵件傳輸

在VB中模擬實現郵件傳輸

編輯:VB綜合教程
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:
  PrivateSubForm—Load()
  ‘程序說明部分:
  Dimyy
  Dima,b,cAsString
  DimabAsInteger
  a=Time
  a=Mid(a,7,1)'取當前時間秒數
  Do
  b=Timeb=Mid(b,7,1)
  If((Int(a)+1)Mod6)=Int(b)Them
  '事件經過十秒
  filename=Dir("C:inbox”,vbNormal)
  '檢測收件箱中有無郵件到達
  Iffilename=""Then
  ElseBeep'若有郵件到達則震鈴一次
  EndIfa=b
  EndIfcheckfile=Dir("C: mpflag.txt")
  '檢測應用程序是否結束
  Ifcheckfile="flag.TXT"Then
  Kill"c: mpflag.txt"
  '若結束則刪除標志文件並退出運行
  GoToexit1EndIf
  yy=DoEvents'響應其他掛起事件
  Loopexit1:EndEndSub
  應用程序P1:
  '調用程序P2.exe
  PrivateSubForm—Load()
  '應用程序中其他初始化部分
  b="c:p2.exe“
  retval=Shell(b,0)'將程序運行在後台
  EndSub
  'P1退出是關閉程序P2
  PrivateSubCommand1—Click()
  Openyhpath&"yhlog.log"ForAppendAs#2'應用程序退出寫入日志文件
  Print#2,Now,yhnamel;"用戶退出"
  Close#2
  Open"c: mpflag.txt"ForOutputAs#1
  '生成退出標志文件
  Colse#1EndEndSub
  本程序在簡體中文Win95,VisualBasic4.0上編譯通過。利用上面介紹的方法,我們可以編寫更多並行並發的應用程序,提高我們計算機的利用效率。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved