主题:如何用 VFP 打开 PDF 文件
SIMONLIANG
[专家分:420] 发布于 2009-08-25 15:24:00
在网上找到关于如何用 VFP 打开 PDF 文档的贴如下:
declare integer shellexecute in shell32.dll integer hwnd,string,sting lpszfile,string,string,integer
lpszfile="c:\vfp98\aa.pdf"
=shellexecute(0,0,lpszfile,0,0,1)
由于我是初学者,上述代码看不明白,那位老师可以详细解释一下吗?
例如上述代码的各参数是什么意思.
谢谢了!
回复列表 (共11个回复)
沙发
SIMONLIANG [专家分:420] 发布于 2009-08-25 15:28:00
我依样画葫芦,却提示:在 DLL 中找不到入口点 shellexecute
万望老师们指点指点.
谢谢!
板凳
fyyylyl [专家分:8550] 发布于 2009-08-25 16:46:00
也来画瓢:
DECLARE INTEGER ShellExecute IN SHELL32.DLL INTEGER ,STRING,STRING,STRING,STRING,INTEGER
lpszfile="c:\vfp98\aa.pdf"
=shellexecute(0,'',lpszfile,'','',1)
3 楼
cbl518 [专家分:57140] 发布于 2009-08-25 21:39:00
Api 的函数名一定要分大小写。
4 楼
cbl518 [专家分:57140] 发布于 2009-08-25 21:40:00
shellexecute 名称没区分大小写,错误!
ShellExecute 每个单词是以大写形式区分的。正确!
5 楼
cbl518 [专家分:57140] 发布于 2009-08-25 21:48:00
declare integer [color=FF0000]S[/color]hell[color=FF0000]E[/color]xecute in shell32 integer,string,st[color=FF0000]r[/color]ing ,string,string,integer
integer 表示32位数字类型的参数
string 表示32位字符串类型的参数
6 楼
SIMONLIANG [专家分:420] 发布于 2009-08-26 21:07:00
又找到一个贴:
DECLARE INTEGER ShellExecute IN Shell32.DLL INTEGER HWND,STRING,STRING lpszFile,STRING,STRING,INTEGER
=ShellExecute(0,'Open',lpszfile,'','',1)
依样画葫芦, OK 了,不过仍然不明白各参数的含义.
例如: 0是什么意思,为什么写入 '','',1等.
望各位老师指点指点入门的基本知识.
谢谢!
7 楼
SIMONLIANG [专家分:420] 发布于 2009-08-26 21:09:00
另外,请问 API 函数有哪些对初学者易懂易学的教材?
8 楼
cbl518 [专家分:57140] 发布于 2009-08-26 21:34:00
ShellExecute 是根据注册表已经关联的程序,用不同的方式,操作指定的文件。
1).标准用法
ShellExecute函数原型及参数含义如下:
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,Directory: PChar; ShowCmd: Integer): HINST; stdcall;
●hWnd:用于指定父窗口句柄。
●Operation:用于指定要进行的操作。
“open”操作表示执行由FileName参数指定的程序,或打开由FileName参数指定的文件或文件夹;
“print”操作表示打印由FileName参数指定的文件;
“explore”操作表示浏览由FileName参数指定的文件夹。
当参数设为 0 时,表示执行默认操作“open”。
●FileName:用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
●Parameters:若FileName参数是一个可执行程序,则此参数指定命令行参数,否则此参数应 0 、""、或为空。
●Directory:用于指定默认目录。
●ShowCmd:若FileName参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。
9 楼
SIMONLIANG [专家分:420] 发布于 2009-08-26 22:47:00
谢谢 cb1518 老师,如此详细的解释,让我有了点头绪.我要仔细学习学习.
还有
上述函数是否有返回值,例如:
1. 假设我要打开 PDF 文件而还没有安装 READER
2. 假设 PDF 文件不存在或在指定的路径上找不到文件
10 楼
cbl518 [专家分:57140] 发布于 2009-08-27 07:56:00
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。
若返回值小于32,则表示出现错误。
我来回复