InstallShield如何做Excel安装与否的检测

  • 传统的方法

  一般都会从注册表入手,检测注册表中是否存在某项来判断是否安装了Office,还可以通过注册表信息来判断安装的具体版本。

  • 存在的问题

  由于系统的不同、注册表的损坏、安装包的不同等等原因,读取注册表的方法显得不靠谱了。

  • 最后的方法

  当注册表检测的结果是没有安装后,再来创建一个Excel实例,如果创建成功了,那么说明安装过。

  有人会问,为什么不一开始就直接创建实例,我的回答是创建Excel实例比较耗内存,注册表有效的情况下检测够用了。

  • 最后贴上代码

//---------------------------------------------------------------------------
// DoesExcelExist
// 判断是否安装了Excel
//---------------------------------------------------------------------------
function BOOL DoesExcelExist()
BOOL bResult;
begin
REGDB_OPTIONS = REGDB_OPTIONS & ~REGDB_OPTION_WOW64_64KEY;
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);
if(RegDBKeyExist("SOFTWARE\\Wow6432Node\\Microsoft\\Office\\Excel")<0 ) then
_out("64 system does not have Excel, now check 32 system.");
if(RegDBKeyExist("SOFTWARE\\Microsoft\\Office\\Excel")<0 ) then
_out("32 system does not have Excel too, Now check is could create Excel object.");
if(!CreateExcelObject())then
_out("So this system does not have Excel, return false.");
bResult = FALSE;
else
_out("So this system have Excel, return true.");
bResult = TRUE;
endif;
else
_out("32 system have Excel, return.");
bResult = TRUE;
endif;
else
_out("64 system have Excel, return.");
bResult = TRUE;
endif;
REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY;
return bResult;
end;

//---------------------------------------------------------------------------
// CreateExcelObject
// 创建Excel实例
// 通过成功与否来判断是否安装了Excel
//---------------------------------------------------------------------------
function BOOL CreateExcelObject()
OBJECT excelObj;
begin
set excelObj = CreateObject("Excel.Application");//创建一个Excel对象
if (IsObject(excelObj) = FALSE ) then
_out("Create Excel object failed.");
set excelObj = NOTHING;
return FALSE;
endif;
_out("Create Excel object successe.");
set excelObj = NOTHING;
return TRUE;
end;

时间: 2024-11-04 10:31:34

InstallShield如何做Excel安装与否的检测的相关文章

在做excel导出时如何将excel直接写在输出流中

之前做excel导出时,我都是先将文件写在服务器上,然后再下载下来,后来发现原来可以直接将文件写在输出流里边. 下面是一个小demo: package com.huaqin.fcstrp.util; import java.io.IOException; import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import javax.servlet

inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效

inno安装卸载时检测程序是否正在运行卸载完成后自动打开网页-代码无效 inno setup 安装卸载时检测程序是佛正在运行卸载完成后自动打开网页-代码无效 --------------------------代码如下--------------------------- [Code]varErrorCode: Integer;IsRunning: Integer; // 安装时判断客户端是否正在运行function InitializeSetup(): Boolean;beginResult

做webapp 使用JS来检测游览器是什么类型,或android是什么版本号

此文转自我的www.gbtags.com社区的文章. 做webapp还是微信游戏,特别是canvas,android上不同机器不同版本区别还是很大的.其实,我今天写了这个js,主要是来做js判断游览器类型,特别使用在android的和widnows phone上的 var brower = { versions:function(){ var u = window.navigator.userAgent; var num ; if(u.indexOf('Trident') > -1){ //IE

linux yum 用本地光盘做源安装perl

参考:http://hi.baidu.com/pengduo66/item/abfe454f81cdb7e5a4c06675 场景说明:选择最小化安装linux操作系统,没有安装perl工具.由于网络的故障问题,无法使用yum install perl 从网上安装perl,目前只有原版的安装光盘.于是尝试使用本地的光盘作为安装源. 步骤1:创建光盘挂载点 mkdir /iso 步骤2:挂载光盘镜像 mount -o loop /CentOS-6.5-x86_64-bin-DVD1.iso /is

手把手教做Excel直方图

手把手教做Excel直方图 2017-10-05  作者:ExcelHome  阅读:71968次 直方图是用于展示数据的分组分布状态的一种图形,用矩形的宽度和高度表示频数分布,通过直方图,用户可以很直观的看出数据分布的形状.中心位置以及数据的离散程度等.今天就和大家一起分享一下,使用直方图来分析员工年龄分布情况. 先来看数据和最终效果:在图中可以看出,员工年龄分布集中在41~55岁,需要尽快招收和培养年轻员工. 接下来就看看具体的实现步骤:步骤1首先根据需要设置分段点:这里分别设置为25.30

做 Excel 的 XML schema.xsd

做 Excel 的 XML schema.xsd 因为需要将 BOM Cost 归档并使用 Git 管理,原来 XLSX 是二进制的,使用 Git 管理并不方便. 于是有了想用 XML 来管理想法,在 Excel 2003 之前已经可以导出 xml 但是那只是整个文件的 xml. 在 Excel 2010 之后有就更强大的 xml 映射关系和 xml 导出. 先做成一个 xml 结构表,再拖到表格中,根据规则就可以导出 xml. 一些常用类型. xs:string xs:decimal xs:i

InstallShield Limited Edition制作安装文件

由于InstallShield Limited Edition for Visual Studio的教程.资料太少,所以我今天才决定写这个文章,专门针对C#项目打包,包括打包集成Microsoft .NET Framework等.大家从官方下载的最新版InstallShield Limited Edition for Visual Studio,是支持VS2010.VS2012.VS2013的(小牛在WIN7.WIN8中安装正常,但是WIN8.1死活都安装不进去--) 如何下载注册: http:

Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils)

数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行处理,Excel 也支持此格式.但标准的 Excel 文件(xls/xlsx)具有较复杂的格式,并不方便像普通文本文件一样直接进行读写,需要借助第三方库来实现. 常用的库是 python-excel 系列: xlrd.xlwt.xlutils xlr

使用nsis做软件安装

1.需求 需要实现对程序的安装和更新 2.解决 1.使用microsoft自带的软件安装 2.使用installshield进行软件安装 3.使用nsis进行软件安装 还有很多,本文使用nis edit + nsis来进行安装 3.步骤 1.下载nis edit 和nsis并进行安装 nis edit:http://sourceforge.net/projects/hmne/ nsis:http://sourceforge.net/projects/nsis/ 2.对nis edit进行下配置