vfp中调用其他应用程序的方法

vfp中调用其他应用程序的方法

ID:2084669

大小:33.00 KB

页数:8页

时间:2017-11-14

vfp中调用其他应用程序的方法_第1页
vfp中调用其他应用程序的方法_第2页
vfp中调用其他应用程序的方法_第3页
vfp中调用其他应用程序的方法_第4页
vfp中调用其他应用程序的方法_第5页
资源描述:

《vfp中调用其他应用程序的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、VFP中调用其他应用程序的方法在用VFP进行应用程序设计中,经常需要调用其他的应用程序。这时候我们立即会想到RUN命令。使用RUN命令只需知道应用程序的文件名及其路径即可。下面的示例是以最大化方式启动Windows目录下的图画板程序并同时打开c:windowsBubbles.bmp文件:RUN/n3C:WindowsPbrush.exec:windowsBubbles.bmpRUN命令的参数用法可以参考VisualFoxPro的帮助文件。但是令人失望的是,在实际开发时我们常常无法确定所需要启动的应

2、用程序的文件名及其安装的路径。比如我们需要启动用户机器上的浏览器并连接到某一个网址,该机器可能安装的是IE,也可能是NetScape,还有可能是其他的浏览器软件,安装的路径更是无从确定。下面给出我在工作中找到的两种解决方法,这两种方法都是通过Win32API函数来解决问题,因此其解决思路也可以用到其他编程语言中去。(一)从注册表中获取被调用软件的名称及路径。我们只需要提供被调用的软件所处理的文件类型(由文件扩展名来确定),即可通过查找注册表中该软件注册的可以处理的文件类型的数据项来得到该软件的文件名及安装路径

3、。*主函数PROCEDURElookregParameterfiletype&&文件类型*申明要用到的API函数DECLAREIntegerRegOpenKeyINWin32API;IntegernHKey,String@cSubKey,Integer@nResultDECLAREIntegerRegCloseKeyINWin32API;IntegernHKeyDECLAREIntegerRegQueryvalueExINWin32API;IntegernHKey,StringlpszvalueName,In

4、tegerdwReserved,;Integer@lpdwType,String@lpbData,Integer@lpcbData#DEFINEHKEY_CLASSES_ROOT-2147483648#DEFINEC_EXTNOFOUND_LOC"查找失败!"LOCALcExtn,cAppKey,cAppName,nErrNumLOCALoReg,regfilecAppKey=""cAppName=""nCurrentKey=0nErrNum=GetAppPath(filetype,@cAppKey,@cAp

5、pName)*确保去掉可执行文件后的参数(如:C:EXCELEXCEL.EXE/e)IFATC(".EXE",m.cAppName)#0m.cAppName=ALLTRIM(SUBSTR(m.cAppName,1,ATC(".EXE",m.cAppName)+3))IFASC(LEFT(cAppName,1))=34&&去掉长文件名前多出的"字符m.cAppName=SUBSTR(m.cAppName,2)ENDIFENDIFRetuLOWER(m.cAppName)ENDPROC*打开注册表PROCED

6、UREOpenKeyLPARAMETERcLookUpKeyLOCALnSubKey,nErrCodenSubKey=0m.nRegKey=HKEY_CLASSES_ROOTnErrCode=RegOpenKey(m.nRegKey,m.cLookUpKey,@nSubKey)nCurrentKey=m.nSubKeyENDPROC*关闭注册表PROCEDURECloseKey=RegCloseKey(nCurrentKey)nCurrentKey=0ENDPROC*查询注册表PROCEDUREGetKeyv

7、alueLPARAMETERcvalueName,cKeyvalueLOCALlpdwReserved,lpdwType,lpbData,lpcbData,nErrCodeSTORE0TOlpdwReserved,lpdwTypeSTORESPACE(256)TOlpbDataSTORELEN(m.lpbData)TOm.lpcbDatam.nErrCode=RegQueryvalueEx(nCurrentKey,m.cvalueName,;m.lpdwReserved,@lpdwType,@lpbData,

8、@lpcbData)m.cKeyvalue=LEFT(m.lpbData,m.lpcbData-1)ENDPROCPROCEDUREGetAppPathLPARAMETERcExtension,cExtnKey,cAppKeyLOCALcOptNamecOptName=""*得到要打开的文档在注册表中的名称=OpenKey("."+m.cExtension)=GetKeyvalue(cOptName

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。