




免费预览已结束,剩余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.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的黑色窗口。3 表示以最大化的方式运行程序。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 fsshowcmd DECLARE INTEGER GetDesktopWindow IN win32api HWND = GetDesktopWindow() lpszOP = open * 指定要打开的文件名 lpszFile =c:mlx.doclpszParams = lpszDir = c:temp fsshowcmd = 1 * 执行ShellExecute命令 LNRETURN = ShellExecute(HWND, lpszOP,lpszFile, lpszParams, lpszDir,fsshowcmd) 可以用任意的文件名来替换上文中的 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 nShowCmdVisual FoxPro 应用示例 * 打开 Word 来编辑文件 c:mywordfile.doc =Shellexecute(0,Open,c:mywordfile.doc,0) * 打开默认的浏览器并定位到天堂论坛 =Shellexecute(0,Open,/bbs/index.asp?boardID=1&page=1,0) * 打开默认的邮件阅读器来发一封信给天堂版主=Shellexecute(0,Open,mailto:,0) * 打印文本文件 c:mytextfile.txt =Shellexecute(0,Print,c:mytextfile.txt,0) -其实有两个比较简单的方法 1、 run/n explorer http:/.com 2、 ox=createobject(wscript.shell)ox.run() 3、declare integer WinExec in win32api string,integer&这个INTEGER类型的参数是窗口的显示模式最大化,最小化,普通 winexec(explorer http:/.com,3) -在OLEContainer1 的 init事件中加入这句话就可以了 This.navigate() 文章引用自:/Article/ShowArticle.asp?ArticleID=345我想用VFP打開d:abc.pdf 怎樣寫程序呢? - 方法一: 先安装AdobeReader5.0或6.0 *将下面程序代码保存为一个prg文件,传入PDF文件名作为参数即可。 LPARAMETERStFile PUBLICoform1 oform1=NEWOBJECT(form1) IFVARTYPE(cFile)#U oForm1.cmdFile.Visible=.f. oForm1.cmdExit.Visible=.f. oForm1.oleControl1.Top=12 oForm1.oleControl1.LoadFile(&cFile) ENDIF oform1.Show *RETURN * DEFINECLASSform1ASform DoCreate=.T. Caption=pdfForm Name=Form1 ADDOBJECTcmdfileAScommandbuttonWITH; Top=12,; Left=12,; Height=27,; Width=144,; Caption=SelectFile,; Name=cmdFile ADDOBJECTcmdexitAScommandbuttonWITH; Top=12,; Left=168,; Height=27,; Width=84,; Caption=Exit,; Name=cmdExit ADDOBJECTolecontrol1ASolecontrolWITH; OLEClass=PDF.PdfCtrl.6,;&如果是AdobeReader5.0,此处的6为5 Top=48,; Left=12,; Height=192,; Width=348,; Name=Olecontrol1 PROCEDUREInit ThisForm.ReSize() ENDPROC PROCEDUREResize ThisForm.Olecontrol1.Height=ThisForm.Height-60 ThisForm.Olecontrol1.Width=ThisForm.Width-24 ThisForm.Olecontrol1.Refresh() ENDPROC PROCEDUREcmdfile.Click LOCALcFile cFile=GETFILE(PDF) IF!EMPTY(cFile) THISFORM.oleControl1.LoadFile(&cFile) ENDIF ENDPROC PROCEDUREcmdexit.Click ThisForm.Release() ENDPROC ENDDEFINE - 方法二:(不能显示在表单中) 1、首先要安装PDF阅读工具。 2、然后利用API来调用默认关联的程序打开PDF文件,请详见: 在VFP中我们可以用run来调用由VFP自身生成的.exe文件。命令格式: runc:.*.exe 当调用非VFP自身生成的.exe文件时,需要加上绝对路径和参数。 一般来说,用VFP运行非VFP自身生成的可执行文件时,会有一个黑色的窗口显示一下。可以通过加上/n来隐藏这个窗口。例如运行Windows下的扫雷游戏,命令格式如下: RUN/nC:WindowsWinmine.exe 下面运行一个更复杂一点的程序。用word打开c:下的一个名为mlx.doc的word文件,命令格式如下: run/n3C:ProgramFilesMicrosoftOfficeOfficeWinword.exeC:mlx.doc 参数:n在运行时隐藏VFP的黑色窗口。 3表示以最大化的方式运行程序。1正常方式、2最小化方式、3最大化方式 在这种情况下,虽然可以通过加上参数使程序程序能够流畅运行,但还是要指定绝对路径,而在实际开发时我们常常无法确定所需要启动的应用程序的文件名及其绝对路径。比如,在上例中,我们无法确定用户的word到底安装在什么地方,如果用户把word安装到了别的地方,上述命令便会出错。再如,一个.gif文件,有的用户喜欢用ACDSee来打开,有的用户喜欢用IE来打开,有的用户喜欢用豪杰来打开, 为了解这种情况我们可以调用Windows的文件关连来打开文件。即所有的文件都用系统默认的程序来打开。这就要调用Windows的Win32API函数。调用方式如下: DECLAREINTEGERShellExecuteINshell32.DLLINTEGERHWND,; STRINGlpszOP,; STRINGlpszFile,; STRINGlpszParams,; STRINGlpszDir,; INTEGERfsshowcmd DECLAREINTEGERGetDesktopWindowINwin32api HWND=GetDesktopWindow() lpszOP=open *指定要打开的文件名 lpszFile=c:mlx.doc lpszParams= lpszDir=c:temp fsshowcmd=1 *执行Shel
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业军转活动方案
- 企业主持人活动策划方案
- 企业元宵活动方案
- 企业公司种菜活动方案
- 企业创新求实活动方案
- 企业合作欢庆活动方案
- 企业女职工健康活动方案
- 企业宿舍活动方案
- 企业庆元宵活动方案
- 企业接待活动方案
- 中国电建集团华东勘测设计研究院限公司诚聘89人易考易错模拟试题(共500题)试卷后附参考答案
- 白内障培训课件
- 二级计量师考试历年真题题库和答案2024
- 法制教育考试试题及答案
- 工程验收单模板
- 2023年安宁市城乡小学教师选调考试真题及答案
- 年产xxx水泥粉助磨剂项目实施方案(项目申请参考)
- 固体废物清运委托合同
- 2025年高考英语仿真模拟试卷(含答案解析)
- 《道路桥梁养护技术》课件
- 《新能源材料概论》 课件 第3章 化学-电能转换新能源材料
评论
0/150
提交评论