如何在VFP中调用默认关联的程序打开文件_vfp子程序调用实例

2020-02-27 其他范文 下载本文

如何在VFP中调用默认关联的程序打开文件由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“vfp子程序调用实例”。

如何在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.NAVIGATETO(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,“Open”,“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:Program FilesMicrosoft OfficeOfficeWinword.exe C:mlx.doc 参数:n 在运行时隐藏VFP的黑色窗口。表示以最大化的方式运行程序。0隐藏窗口、1正常方式、2最小化方式、3最大化方式

在这种情况下,虽然可以通过加上参数使程序程序能够流畅运行,但还是要指定绝对路径,而在实际开发时我们常常无法确定所需要启动的应用程序的文件名及其绝对路径。比如,在上例中,我们无法确定用户的word到底安装在什么地方,如果用户把word安装到了别的地方,上述命令便会出错。再如,一个.gif文件,有的用户喜欢用ACD See来打开,有的用户喜欢用IE来打开,有的用户喜欢用豪杰来打开,……

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

DECLARE INTEGER GetDesktopWindow IN win32api HWND = GetDesktopWindow()lpszOP = “open”

* 指定要打开的文件名

lpszFile =“c:mlx.doc” lpszParams = “” lpszDir = “c:temp” fhowcmd = 1

* 执行ShellExecute命令

LNRETURN = ShellExecute(HWND, lpszOP,lpszFile, lpszParams, lpszDir,fhowcmd)

可以用任意的文件名来替换上文中的 c:mlx.doc。如果指定的文件名Windows无法找到相应的关连程序,这时程序将不会做出反应。有关的参数可以自行偿试进行修改,以达到最佳效果。

--API函数ShellExecute的使用

ShellExecute

说明 Shellexecute 函数用于对文件执行一个动词(verb).它通常用于启动一个与特定文件类相关联的应用程序.例如, 要启动 Word 来读一个.doc 文件, 或启动 记事本 来编辑一个.txt 文件.用于第二个参数中的最常用的动词是 “Open”, 但其它可用的动词是 “edit”,“print”,“explore” 和 “properties”.有趣的是, 使用 “mailto:” 或 “http://” 前缀, ShellExecute 函数也可用于以一个给定的邮件地址启动默认的邮件阅读器或给定的 URL 启动默认的浏览器.缩主文件 Shell32.dll

在 VFP 中的定义

DECLARE INTEGER ShellExecute IN “Shell32.dll”;INTEGER hwnd,;STRING lpVerb,;STRING lpFile,;

STRING lpParameters,;STRING lpDirectory,;LONG nShowCmd Visual FoxPro 应用示例

* 打开 Word 来编辑文件 “c:mywordfile.doc” =Shellexecute(0,“Open”,“c:mywordfile.doc”,“”,“”,0)

* 打开默认的浏览器并定位到天堂论坛

=Shellexecute(0,“Open”,“http://www.daodoc.com/Article/ShowArticle.asp?ArticleID=34

5我想用VFP打開d:abc.pdf 怎樣寫程序呢?

-方法一:

先安装Adobe Reader 5.0或6.0

*将下面程序代码保存为一个prg文件,传入PDF文件名作为参数即可。

LPARAMETERS tFile

PUBLIC oform1

oform1=NEWOBJECT(”form1“)

IF VARTYPE(cFile)# ”U“ oForm1.cmdFile.Visible =.f.oForm1.cmdExit.Visible =.f.oForm1.oleControl1.Top = 12 oForm1.oleControl1.LoadFile([&cFile])ENDIF

oform1.Show *RETURN

********************************************************** DEFINE CLASS form1 AS form

DoCreate =.T.Caption = ”pdfForm“ Name = ”Form1“

ADD OBJECT cmdfile AS commandbutton WITH;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 = ”E

ADD OBJECT olecontrol1 AS olecontrol WITH;

OLECla = “PDF.PdfCtrl.6”,;&&如果是Adobe Reader 5.0,此处的6为5 Top = 48,;Left = 12,;Height = 192,;Width = 348,;Name = “Olecontrol1”

PROCEDURE Init ThisForm.ReSize()ENDPROC

PROCEDURE Resize

ThisForm.Olecontrol1.Height = ThisForm.Height24 ThisForm.Olecontrol1.Refresh()ENDPROC

PROCEDURE cmdfile.Click LOCAL cFile

cFile = GETFILE([PDF])IF!EMPTY(cFile)

THISFORM.oleControl1.LoadFile([&cFile])ENDIF ENDPROC

PROCEDURE cmdexit.Click ThisForm.Release()ENDPROC

ENDDEFINE

-方法二:(不能显示在表单中)

1、首先要安装PDF阅读工具。

2、然后利用API来调用默认关联的程序打开PDF文件,请详见:

在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:Program FilesMicrosoft OfficeOfficeWinword.exe C:mlx.doc 参数:n 在运行时隐藏VFP的黑色窗口。3 表示以最大化的方式运行程序。1正常方式、2最小化方式、3最大化方式

在这种情况下,虽然可以通过加上参数使程序程序能够流畅运行,但还是要指定绝对路径,而在实际开发时我们常常无法确定所需要启动的应用程序的文件名及其绝对路径。比如,在上例中,我们无法确定用户的word到底安装在什么地方,如果用户把word安装到了别的地方,上述命令便会出错。再如,一个.gif文件,有的用户喜欢用ACD See来打开,有的用户喜欢用IE来打开,有的用户喜欢用豪杰来打开,……

为了解这种情况我们可以调用Windows的文件关连来打开文件。即所有的文件都用系统默认的程序来打开。这就要调用Windows的Win32 API函数。调用方式如下:

DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,;STRING lpszOP,;STRING lpszFile,;STRING lpszParams,;STRING lpszDir,;INTEGER fhowcmd

DECLARE INTEGER GetDesktopWindow IN win32api HWND = GetDesktopWindow()lpszOP = “open” * 指定要打开的文件名

lpszFile =“c:mlx.doc” lpszParams = “” lpszDir = “c:temp” fhowcmd = 1

* 执行ShellExecute命令

LNRETURN = ShellExecute(HWND, lpszOP,lpszFile, lpszParams, lpszDir,fhowcmd)

可以用任意的文件名来替换上文中的 c:mlx.doc。如果指定的文件名Windows无法找到相应的关连程序,这时程序将不会做出反应。有关的参数可以自行偿试进行修改,以达到最佳效果。

《如何在VFP中调用默认关联的程序打开文件.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
如何在VFP中调用默认关联的程序打开文件
点击下载文档
相关专题 vfp子程序调用实例 文件 程序 如何在 vfp子程序调用实例 文件 程序 如何在
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文