如何在VFP中调用默认关联的程序打开文件.doc

上传人:hw****26 文档编号:3099569 上传时间:2019-05-21 格式:DOC 页数:6 大小:43.50KB
下载 相关 举报
如何在VFP中调用默认关联的程序打开文件.doc_第1页
第1页 / 共6页
如何在VFP中调用默认关联的程序打开文件.doc_第2页
第2页 / 共6页
如何在VFP中调用默认关联的程序打开文件.doc_第3页
第3页 / 共6页
如何在VFP中调用默认关联的程序打开文件.doc_第4页
第4页 / 共6页
如何在VFP中调用默认关联的程序打开文件.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、如何在 VFP中调用默认关联的程序打开文件?(2007-01-20 17:13:12) 转载分类: 数据库-DB如何在 VFP中调用默认关联的程序打开文件?怎样在一个菜单中建立一个程序或命令打开一个网页或 word,excel等文件? - 打开一个网页与 word,excel是不一样. 1.word,excel要用 ACTIVEX的 OLECONTROL控件. 2.打开一个网页要用到 HYPERLINK控件. 可以在表单上加一个 TEXT一个 COMMANG控件,还有一个超级链接 HYPERLINK控件. COMMAND.CLICK事件: THISFORM.HYPERLINK.NAVIGATE

2、TO(THISFORM.TEXT.VALUE)在 vfp的例子中找到了一个这个问题的解决方法,使用 api函数来解决,如下: 1、声明函数 DECLARE INTEGER ShellExecute ; IN SHELL32.DLL ; INTEGER nWinHandle,; STRING cOperation,; STRING cFileName,; STRING cParameters,; STRING cDirectory,; INTEGER nShowWindow2、在程序中任何地方调用,包括菜单中,打开一个 e:a.htm文件的调用方法如下, =ShellExecute(0,“Ope

3、n“,“e:a.htm“,“,“e:“,1) - 在 VFP中我们可以用 run来调用由 VFP自身生成的.exe 文件。命令格式: run c:.*.exe当调用非 VFP自身生成的.exe 文件时,需要加上绝对路径和参数。 一般来说,用 VFP运行非 VFP自身生成的可执行文件时,会有一个黑色的窗口显示一下。可以通过加上/n 来隐藏这个窗口。例如运行 Windows下的扫雷游戏,命令格式如下: RUN/n C:WindowsWinmine.exe 下面运行一个更复杂一点的程序。用 word打开 c:下的一个名为 mlx.doc的 word文件,命令格式如下: run /n3 C:Progr

4、am FilesMicrosoft OfficeOfficeWinword.exe C:mlx.doc 参数:n 在运行时隐藏 VFP的黑色窗口。3 表示以最大化的方式运行程序。0 隐藏窗口、1 正常方式、2 最小化方式、3 最大化方式 在这种情况下,虽然可以通过加上参数使程序程序能够流畅运行,但还是要指定绝对路径,而在实际开发时我们常常无法确定所需要启动的应用程序的文件名及其绝对路径。比如,在上例中,我们无法确定用户的 word到底安装在什么地方,如果用户把 word安装到了别的地方,上述命令便会出错。再如,一个.gif 文件,有的用户喜欢用 ACD See来打开,有的用户喜欢用 IE来打开

5、,有的用户喜欢用豪杰来打开, 为了解这种情况我们可以调用 Windows的文件关连来打开文件。即所有的文件都用系统默认的程序来打开。这就要调用 Windows的 Win32 API函数。调用方式如下DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,; STRING lpszOP, ; STRING lpszFile, ; STRING lpszParams, ; STRING lpszDir, ; INTEGER fsshowcmd DECLARE INTEGER GetDesktopWindow IN win32api HWND

6、 = GetDesktopWindow() lpszOP = “open“ * 指定要打开的文件名 lpszFile =“c:mlx.doc“lpszParams = “ lpszDir = “c:temp“ fsshowcmd = 1 * 执行 ShellExecute命令 LNRETURN = ShellExecute(HWND, lpszOP,lpszFile, lpszParams, lpszDir,fsshowcmd) 可以用任意的文件名来替换上文中的 c:mlx.doc 。如果指定的文件名 Windows无法找到相应的关连程序,这时程序将不会做出反应。有关的参数可以自行偿试进行修改

7、,以达到最佳效果。- API函数 ShellExecute的使用 ShellExecute 说明 Shellexecute 函数用于对文件执行一个动词(verb). 它通常用于启动一个与特定文件类相关联的应用程序. 例如, 要启动 Word 来读一个 .doc 文件, 或启动 记事本 来编辑一个 .txt 文件. 用于第二个参数中的最常用的动词是 “Open“, 但其它可用的动词是 “edit“,“print“,“explore“ 和 “properties“. 有趣的是, 使用 “mailto:“ 或 “http:/“ 前缀, ShellExecute 函数也可用于以一个给定的邮件地址启动默

8、认的邮件阅读器或给定的 URL 启动默认的浏览器. 缩主文件 Shell32.dll 在 VFP 中的定义 DECLARE INTEGER ShellExecute IN “Shell32.dll“ ; INTEGER hwnd, ; STRING lpVerb, ; STRING lpFile, ; STRING lpParameters, ; STRING lpDirectory, ; LONG nShowCmdVisual FoxPro 应用示例 * 打开 Word 来编辑文件 “c:mywordfile.doc“ =Shellexecute(0,“Open“,“c:mywordfile

9、.doc“,“,“,0) * 打开默认的浏览器并定位到天堂论坛 =Shellexecute(0,“Open“,“http:/ Top = 12, ; Left = 12, ; Height = 27, ; Width = 144, ; Caption = “Select File“, ; Name = “cmdFile“ ADD OBJECT cmdexit AS commandbutton WITH ; Top = 12, ; Left = 168, ; Height = 27, ; Width = 84, ; Caption = “Exit“, ; Name = “cmdExit“ ADD

10、 OBJECT olecontrol1 AS olecontrol WITH ; OLEClass = “PDF.PdfCtrl.6“, ; Left = 12, ; Height = 192, ; Width = 348, ; Name = “Olecontrol1“ PROCEDURE Init ThisForm.ReSize() ENDPROC PROCEDURE Resize ThisForm.Olecontrol1.Height = ThisForm.Height - 60 ThisForm.Olecontrol1.Width = ThisForm.Width - 24 ThisFo

11、rm.Olecontrol1.Refresh() ENDPROC PROCEDURE cmdfile.Click LOCAL cFile cFile = GETFILE(PDF) IF !EMPTY(cFile) THISFORM.oleControl1.LoadFile( STRING lpszOP, ; STRING lpszFile, ; STRING lpszParams, ; STRING lpszDir, ; INTEGER fsshowcmd DECLARE INTEGER GetDesktopWindow IN win32api HWND = GetDesktopWindow() lpszOP = “open“ * 指定要打开的文件名 lpszFile =“c:mlx.doc“ lpszParams = “ lpszDir = “c:temp“ fsshowcmd = 1 * 执行 ShellExecute 命令 LNRETURN = ShellExecute(HWND, lpszOP,lpszFile, lpszParams, lpszDir,fsshowcmd) 可以用任意的文件名来替换上文中的 c:mlx.doc 。如果指定的文件名 Windows 无法找到相应的关连程序,这时程序将不会做出反应。有关的参数可以自行偿试进行修改,以达到最佳效果。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。