在VFP中发送电子邮件
用过netants的朋友都知道作者在帮助菜单的对话框里留下了自己的邮箱地址。点击电子邮件地址,我们就可以给作者发邮件了。这种功能看似玄妙,其实使用Windows API的ShellExecute函数就可以轻松实现。
ShellExecute是一个用于打开特定格式文件(如WORD文件、EXCEL表格)的函数。该函数存储在Shell32.DLL的动态链接库中。通过咨询MSDN,可以得到以下帮助:
HinstanceShellExecute(hwnd hwnd,lpctstr LP操作,lpctstr LP文件,lpctstr LP参数,lpctstr LP目录,int n show cmd);
其call参数的含义如下:
hwnd:表示打开文件的窗口句柄。
lpOperation:表示操作类型,即“打开”、“打印”和“浏览”。
lpFile:要打开的文件的文件名。在这里,应该更深层次地理解文件的含义。该文件可以是本地文件或远程文件;文件类型可以是文本文件或多媒体文件。
lpParameters:打开文件时传递的参数。特别适合打开EXE文件。
lpDirectory:文件所在的路径。
nShowCmd:文件打开时窗口的状态。0表示隐藏,1表示最小化,2表示最小化。
如果该函数能够成功打开文件,则该函数的返回值大于32。这个函数的返回值可以为你调试程序提供很多有用的信息。有关详细信息,请参阅MSDN的帮助文件。
好了,有了以上的知识,我们就可以在VFP程序开发中使用ShellExecute函数来实现发送邮件的功能了。创建一个关于我的新表单,并向该表单添加以下控件(参见表1)。
需要注意的是,Label1中的MouseIcon设置为单手光标,其对应的图标文件在系统中随处可见(使用查找文件的功能)。本文使用Windows自带的h_move.cur文件。Label11的各种设置都是为了让标签看起来更像“超文本”。
添加完上面的控件后,下一步就是编写控件的CLICK事件代码。Label1和Label2的CLICK事件设置相同,其他代码为:
*声明:
声明integer shell在shell32.DLL执行integer hwnd,string,string lpszfile,string,string,integer
*发送主题为“Hello”的邮件到kingdom@126.com邮箱,
在Label1的CLICK事件中,添加以下代码:
shellexecute (0," open "," mailto:kingdom@126.com?"Subject= Hello ",0,0,1)
在Label2的CLICK事件中,将上面的语句改为:
shellexecute (0," open "," http:∨NationalTax.home.Chinaren.com ",0,0,1)
*更简单。
确认按钮的CLICK事件代码很简单:thisform.release
运行上面的表单,当鼠标移动到邮件或者作者主页区域时,鼠标会变成一只手,点击它就可以进行相应的操作:点击Label1启动Outlook Express;单击标签2并启动IE。形式真的很像小IE!实际上,在VFP程序的开发中,一些看似不可能的事件通过使用一些Windows API会一下子变得简单得多。
Windows API介绍:
应用程序接口,即应用编程接口,是Windows提供给程序员的一系列功能。这些API函数类似于一般的函数,它们也有输入输出参数,并且被编译成一个独立的文件,这个文件叫做动态链接库。利用API函数可以实现很多复杂有趣的功能,比如重启电脑,跟踪当前激活的表单,收发邮件等。
0条评论