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

