VFP中操作多种文件

做为一种数据处理软件,VFP在使用上的简洁是人所共知的。在使用VFP进行应用程序开以时,有时会涉及到一些非数据处理方面的内容,比如在VFP中打开WORD文档、EXCEL图表、利用OE收发电子邮件,这些功能又恰恰是VFP的弱项。通常情况下,我们处理这些问题的方法是使用OLE(现称之为ActiveX)技术来完成。但是,在VFP中要熟练操作OLE对象,又是一件更麻烦的事情。拿用VFP接入互联网来说,你可以在VFP的表单中加入Microsoft Web浏览器控件,但是如果没有专业的技术文档,你要想顺利地使用浏览器控件,这基本上是不可能的。有没有一种更简单的办法来实现上述功能呢?有的。

VFP提供了在应用程序中调用Windows API函数的功能。如果我们要在VFP程序中使用API函数,只需要在使用前先进行申明,告诉VFP你想调用的函数的基本情况。申明语句的语法如下:

DECLARE [cFunctionType] FunctionName IN LibraryName [AS AliasName]  [cParamType1 [@] ParamName1, cParamType2 [@] ParamName2,……]

其中各参数的具体含义如下:

cFunctionType:被调用函数的返值。它可以是SHORT、INTEGER、SINGLE、DOUBLE、LONG、STRING六个类型之一。学过VC编程的朋友对这些数据类型肯定不会陌生。

FunctionName :调用函数的名称。它是大小写敏感的。

LibraryName:调用函数的所在地。它一般是一DLL文件名。

cParameterType1 [@] ParamName1, cParameterType2 [@] ParamName2, :当对函数的调用属带参调用时,就应该申明参数的类型及名称。

其实,使用VFP操作其他类型的文件,你不妨把这项工作交给系统替你来完成。在SHELL32.DLL动态链接库中,有一ShellExecute函数,它负责打开文件的操作,查阅MSDN,我们能够得到下述帮助: 

HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile,LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd);

其调用参数的含义如下:

hwnd:指明打开文件的窗口句柄。

lpOperation:指明操作类型,分别是“open"(打开)、“print(打印)"、“explore(浏览)"

lpFile:欲打开文件的文件名。这里应该将文件的含义向更深层次理解。文件可以是本地文件,也可以是远程文件。文件的类型可以要文本文件,也可能是多媒体文件。

LpParameters:打开文件时所传递的参数。特别适合对EXE文件的打开。

LpDirectory:文件所在路径。

NShowCmd:打开文件时窗口的状态。0表示隐藏,1表示最大化,2表示最小化。

如果该函数打开文件的操作的成功,则该函数的返回值大于32。该函数的返回值能够为你调试程序提供很多有用的信息,详情请见MSDN内帮助文件。

好,有了上面的认识,我们可以引入正题了。

一、 在VFP中浏览网页。

在VFP6.0提供了超级链接控件,使用该控件能够很简单地进入Internet。但是在VFP5中却没有此类控件,如果你想在VFP5中浏览互联网,只需在程序中添加如下代码:

*进行申明操作:

DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING, STRING lpszFile, STRING, STRING, INTEGER*以最大化窗口方式打开IE,并进入在线影院ShellExecute(0,“open",“http://www.163film.com",0,0,1)

二、 打开、打印WORD文档

*若要打印文档,则将operate赋值为“print"

operate=“open"

*打开hello.doc文档

ShellExecute(0,operate,“c:\my documents\hello.doc",0,0,1)

三、 带参调用EXE文件

*下列语句将运行记事本程序,并打config.sys进行编辑

ShellExecute(0,“open",“notepad.exe",“config.sys",“c:\",1)

四、 调用资源管理器

*运行资源管理器查看C:盘内容

ShellExecute(0,“explore",0,“c:\",0,1)

五、在VFP中发送电子邮件

*发送一封主题为新年“进步”的信到abcd@efg.com ShellExecute(0,“open",“mailto:abcd@efg.com?subject=新年进步 ",0,0,1)

以上便是ShellExecute常见的几种具体用途,怎么样,没想到在VFP中也能够这样容易地操作各种各样的文件吧!试试看,你肯定能够找到ShellExecute更加多的用途。

猫猫的心里话

加菲猫的VFP|狐友会社群接收投稿啦

加菲猫的VFP,用VFP不局限VFP,用VFP混合一切。无论是VFP,还是JS,还是C,只要能混合起来,都可以发表。

商业模式,销售技巧、需求规划、产品设计的知识通通可以发表。

暂定千字50元红包,,优秀的文章红包更大,一经发表,红包到手。

如何帮助使用VFP的人?

用VFP的人,有专业的,有非专业了,很多人其实是小白,问出的问题是小白,如果问题不对,我们引导他们问正确的问题。无论如何请不要嘲笑他们说帮助都不看,这么简单的问题都不会,嘲笑别人不行,而无法提出建设性答案,是很low的。

我们无论工作需要,还是有自己的软件,都是是需要真正的知识,如何让更多人学习真正的VFP知识呢,只需要点赞,在看,能转发朋友圈就更好了。

加菲猫的vfp倡导用"VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发"

我已经带领一百多名会员成功掌到VFP的黑科技,进入了移动互联网时代,接下来我们要进入物联网领域。

2025年狐友会社群会员继续招募中

社群会员获取的权益有:

祺佑三层开发框架商业版(猫框),终身免费升级,终身技术支持。

开放的录播课程有:

微信小程序,微信公众号开发,H5 APP开发,Extjs BS开发,VFP面向对象进阶,VFP中间层开发。

源码类资源有:

支付组件源码,短信源码,权限组件源码,一些完整系统的源码。这个可以单独出售的,需要的可以联系我。

会员也可以实现群内资源对接,可以接分包,合作等各项商业或技术业务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值