Inno setup 如何检查是否安装了CAPICOM?

Inno setup 如何检查是否安装了CAPICOM?,inno-setup,capicom,Inno Setup,Capicom,我的应用程序使用CAPICOM。它可能未安装在某些计算机中,因此安装程序需要安装它。我已经添加了msi安装程序,以便在安装我的应用程序时运行 如果安装了CAPICOM以避免重复安装,是否有任何方法可以在Inno安装程序中进行测试?如果您查看CAPICOM SDK发行版示例,特别是\Samples\vbs\CVersion.vbs,您将看到一种确定库版本号的试错功能测试方法。在该脚本的开头,作者尝试初始化CAPICOM.Store对象,并打开根证书存储(供以后使用): '打开机器根存储区,因为可以

我的应用程序使用CAPICOM。它可能未安装在某些计算机中,因此安装程序需要安装它。我已经添加了msi安装程序,以便在安装我的应用程序时运行


如果安装了CAPICOM以避免重复安装,是否有任何方法可以在Inno安装程序中进行测试?

如果您查看CAPICOM SDK发行版示例,特别是
\Samples\vbs\CVersion.vbs
,您将看到一种确定库版本号的试错功能测试方法。在该脚本的开头,作者尝试初始化
CAPICOM.Store
对象,并打开根证书存储(供以后使用):

'打开机器根存储区,因为可以安全地假设其中始终有一些证书。
Set oStore=CreateObject(“CAPICOM.Store”)
o打开CAPICOM\u本地\u机器\u存储,“根”,CAPICOM\u存储\u打开\u只读
如果错误号为0,则
GetCAPICOMVersion=CAPICOM\u未安装
退出功能
如果结束
由于没有报告CAPICOM安装状态(或例如版本)的平面API函数,我将从上述脚本中获得灵感,但我只尝试初始化一些CAPICOM COM对象(存在于所需版本中),假设失败,CAPICOM未安装:

[代码]
函数:布尔型;
开始
结果:=真;
尝试
CreateOleObject('CAPICOM.Store');{尝试初始化CAPICOM.Store对象}
除了
结果:=假;{如果失败,则不安装CAPICOM}
终止
终止
然后,您可以将此类帮助器函数用于所选脚本部分项中的参数