主题:在VFP中如何判断电脑上安装了EXCEL ?
seel
[专家分:250] 发布于 2009-03-17 10:09:00
如题,3ks
回复列表 (共3个回复)
沙发
seel [专家分:250] 发布于 2009-03-17 10:57:00
OK, 搞定了 ^_^
板凳
琅拿度 [专家分:2820] 发布于 2009-03-20 18:29:00
err_fnd=.F.
ON ERROR err_fnd=.T.
OLEAPP=CreateObject("excel.application")
IF err_fnd
MESSAGEBOX("找不到“EXCEL”程序,请先安装 Microsoft office。",16,"错误...")
3 楼
ihorse [专家分:970] 发布于 2009-03-23 22:01:00
VFP中有个registr.prg文件(如果是正常安装的,自己搜索下,电脑中有),可调用来检测是否安装EXcel软件。
以下是我修改的ISEXCEL.PRG文件中的内容,用于检测EXCEL是否安装,如安装了显示文件位置和版本信息等:
#DEFINE ERROR_SUCCESS 0
*#DEFINE C_NOREGFILE_LOC "检测失败!原因:注册表检测文件丢失。"
LOCAL CEXTN,CAPPKEY,CAPPNAME,NERRNUM,CNEWKEY
LOCAL OREG,REGFILE,CVERSION
CAPPKEY = ""
CAPPNAME = ""
REGFILE = "registry.prg" &&请将"registry.prg" 文件放在ISEXCEL.PRG相同文件夹中
SET PROCEDURE TO (m.REGFILE) ADDITIVE
OREG = CREATEOBJECT("FileReg")
CEXTN ="XLS"
NERRNUM = OREG.GETAPPPATH(m.CEXTN,@CAPPKEY,@CAPPNAME)
IF m.NERRNUM # ERROR_SUCCESS
*MESSAGEBOX(C_EXTNOFOUND_LOC)
RETURN TO MASTER
ENDIF
IF ATC(".EXE",m.CAPPNAME) #0
m.CAPPNAME= ALLTRIM(SUBSTR(m.CAPPNAME,1,ATC(".EXE",m.CAPPNAME)+3))
IF ASC(LEFT(CAPPNAME,1))=34 &&check for long file name in quotes
m.CAPPNAME = SUBSTR(m.CAPPNAME,2)
ENDIF
CZ=IIF(FILE(m.CAPPNAME),"Yes","No")
IF m.CZ#"Yes" THEN
IF MESSAGEBOX( "未能在您的电脑中发现Excel软件!"+CHR(13)+CHR(13)+"请首先正确安装 Excel(建议安装Excel 2000/XP/2003)!"+CHR(13)+CHR(13)+"您确认要继续么?",48+4+256,"警告")!=6
RETURN TO MASTER
ENDIF
ELSE
CVERSION = RIGHT(m.CAPPKEY,1)
LJ="系统对Excel软件的探测结果如下:"+CHR(13)+CHR(13)+"【文件路径】"+CHR(13)+CHR(13)+UPPER(m.CAPPNAME)
BB=CHR(13)+CHR(13)+"【文件版本】"+IIF(VAL(m.CVERSION)>0,m.CVERSION,"")
ZT=CHR(13)+CHR(13)+"【存在状态】"+IIF(FILE(m.CAPPNAME),"是","否")
INFOMESS=LJ+BB+ZT
MESSAGEBOX(INFOMESS,0+48,"提示")
ENDIF
ENDIF
RELEASE PROC (m.REGFILE)
我来回复