VFP實(shí)現(xiàn)電子郵件發(fā)送程序

字號(hào):

用過(guò)《網(wǎng)絡(luò)螞蟻》的朋友都知道,在幫助菜單的對(duì)話框里作者留下了他的電子郵件地址,單擊該郵件地址我們便能給作者發(fā)送電子郵件。這種功能看起來(lái)有些神秘,實(shí)際上只要利用Windows API的ShellExecute函數(shù),便可輕松地實(shí)現(xiàn)該功能。
    ShellExecute是用來(lái)打開(kāi)特定格式的文件(如WORD文件、EXCEL表格)的函數(shù)。該函數(shù)存放在Shell32.DLL動(dòng)態(tài)鏈接庫(kù)中,通過(guò)查閱MSDN,我們能夠得到下述幫助:
    HINSTANCE ShellExecute(HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR lpDirectory,INT nShowCmd);
    其調(diào)用參數(shù)的含義如下:
    hwnd:指明打開(kāi)文件的窗口句柄。
    lpOperation:指明操作類型,分別是“open”(打開(kāi))、“print”(打?。?、“explore”(瀏覽)。
    lpFile:欲打開(kāi)文件的文件名。這里應(yīng)該將文件的含義向更深層次理解。文件可以是本地文件,也可以是遠(yuǎn)程文件;文件的類型可以是文本文件,也可以是多媒體文件。
    lpParameters:打開(kāi)文件時(shí)所傳遞的參數(shù)。特別適合打開(kāi)EXE文件。
    lpDirectory:文件所在路徑。
    nShowCmd:打開(kāi)文件時(shí)窗口的狀態(tài)。0表示隱藏,1表示化,2表示最小化。
    如果該函數(shù)能夠成功打開(kāi)文件,則該函數(shù)的返回值大于32。該函數(shù)的返回值能夠?yàn)槟阏{(diào)試程序提供很多有用的信息,具體情況見(jiàn)MSDN內(nèi)幫助文件。
    好,有了上述認(rèn)識(shí)之后,我們便能在VFP的程序開(kāi)發(fā)中利用ShellExecute函數(shù)來(lái)實(shí)現(xiàn)發(fā)送電子郵件的功能。新建一表單ABOUTME,在該表單上添加下列控件(見(jiàn)表1)。
    需要說(shuō)明的是,在Label1中的MouseIcon設(shè)為一手型光標(biāo),其所對(duì)應(yīng)的圖標(biāo)文件在系統(tǒng)內(nèi)可以隨處找到(利用查找文件功能),本文用的是Windows自帶h_move.cur文件。針對(duì)Label11的各類設(shè)置都是為了將該標(biāo)簽打扮得更象“超文本”。
    添加完上述控件之后,接下來(lái)便是編寫控件的CLICK事件代碼了。對(duì)Label1和Label2的CLICK事件設(shè)定相同,其他代碼為:
    *進(jìn)行聲明操作:
    DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING,STRING lpszFile,STRING,STRING,INTEGER
    *向yyba521@126.com郵箱內(nèi)發(fā)送一封主題為“你好”的電子郵件。
    在Label1的CLICK事件里,添加以下代碼:
    ShellExecute(0,″open″,″mailto:yyba521@126.com?subject=你好″,0,0,1)
    在Label2的CLICK事件里,將上述語(yǔ)句改為:
    ShellExecute(0,″open″,″http:∥NationalTax.home.Chinaren.com″,0,0,1)
    *以化窗口方式打開(kāi)IE,進(jìn)入作者主頁(yè)。
    確認(rèn)按鈕的CLICK事件代碼很簡(jiǎn)單:thisform.release
    運(yùn)行上述表單,當(dāng)鼠標(biāo)移動(dòng)到電子郵件或是作者主頁(yè)區(qū)域時(shí),鼠標(biāo)便會(huì)變成一只手,點(diǎn)一下即可進(jìn)行相應(yīng)的操作:?jiǎn)螕鬖abel1,啟動(dòng)Outlook Express;單擊Label2,啟動(dòng)IE,表單真有些像一個(gè)小型的IE!其實(shí),在VFP的程序開(kāi)發(fā)中,一些看似不可能的事件只要稍微用到一些Windows API,所有的事件一下子都變得簡(jiǎn)單多了?!吧街厮畯?fù)疑無(wú)路,柳暗花明又一村”,這可能就是編程的樂(lè)趣所在吧
    Windows API簡(jiǎn)介:
    Application Program Interface,即應(yīng)用程序編程接口,它是Windows提供給程序員的一系列函數(shù)。這些API函數(shù)同一般的函數(shù)相似,同樣具有輸入輸出參數(shù),并編譯到一個(gè)獨(dú)立的文件中,該文件被稱為動(dòng)態(tài)鏈接庫(kù)。運(yùn)用API函數(shù)可以實(shí)現(xiàn)許多復(fù)雜和有趣的功能,如重新啟動(dòng)計(jì)算機(jī)、跟蹤當(dāng)前激活窗體、收發(fā)E-mail等。