回 帖 发 新 帖 刷新版面

主题:在VFP中如何判断电脑上安装了EXCEL  ?

如题,3ks

回复列表 (共3个回复)

沙发

OK, 搞定了 ^_^

板凳

err_fnd=.F. 
ON ERROR err_fnd=.T.    
OLEAPP=CreateObject("excel.application") 
IF err_fnd 
MESSAGEBOX("找不到“EXCEL”程序,请先安装 Microsoft office。",16,"错误...")

3 楼

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)

我来回复

您尚未登录,请登录后再回复。点此登录或注册