Nsis 如何检测Windows系统中是否安装了DDS?

Nsis 如何检测Windows系统中是否安装了DDS?,nsis,data-distribution-service,Nsis,Data Distribution Service,我想使用nsis脚本安装OpenSplice DDS,但我必须知道系统(Windows)中是否安装了OpenSplice DDS 根据寄存器密钥,我们如何检查是否安装了OpenSplice DDS 是否有人可以提供nsis脚本来检查基于注册表项的DDS安装?标准OpenSplice安装不会对注册表进行任何更改,因此,您不能使用检查注册表项来发现是否已安装OpenSplice。只有在安装过程中选中了将OpenSplice作为Windows服务安装的选项,信息才会插入到注册表中,就像任何Window

我想使用nsis脚本安装OpenSplice DDS,但我必须知道系统(Windows)中是否安装了OpenSplice DDS

根据寄存器密钥,我们如何检查是否安装了OpenSplice DDS


是否有人可以提供nsis脚本来检查基于注册表项的DDS安装?

标准OpenSplice安装不会对注册表进行任何更改,因此,您不能使用检查注册表项来发现是否已安装OpenSplice。只有在安装过程中选中了将OpenSplice作为Windows服务安装的选项,信息才会插入到注册表中,就像任何Windows服务在注册表中都有条目一样。由于选择与否取决于用户,因此这也不是一种可靠的检查机制

更好的方法可能是检查是否设置了环境变量
%OSPL\u HOME%
。此变量通常由OpenSplice安装程序添加到环境中;它指向它的安装目录


此答案基于以前的产品经验。我没有访问任何当前版本的权限,因此安装过程可能已更改。

也许您应该告诉我们您要检查哪个注册表项……当您说“OpenSplice DDS installed”时,您的意思是说“OpenSplice DDS installed by the installer with the commercial edition”(通过商业版附带的安装程序安装)?@Anders谢谢。是的。你是对的。我想检查一下哪个注册表项是否安装了DDS??仅基于此结果,我将进行进一步处理。谢谢。我的DDS路径为HKLM\SOFTWARE\PrimsTech\OpenSplice DDS。我有透明注册表编辑器。但在运行以下脚本时,它工作不正常。它不显示DDS消息。ReadRegStr$1 HKLM“SOFTWARE\PrimsTech”“Version”。您知道吗?我不确定会发生什么,但我确实看到您在这里输入了一个错误:该公司不是PrimsTech,而是PrismTech.oops。很抱歉这里输入错误。我尝试了以下操作:ReadRegStr$1 HKLM“SOFTWARE\PrismTech”“Location”ReadRegStr$2 HKLM“SOFTWARE\PrismTech\$1”“Version”.但它不能正常工作。我不知道..为什么?现在你的钥匙路径缺少OpenSplice DDS。最好先不使用任何变量(比如$1),但先硬编码,看看是否有效。不过我没有NSIS的经验。