Apache NSIS:检测Tomcat安装
我一直在尝试在NSIS脚本中检测Tomcat是否安装在主机系统上Apache NSIS:检测Tomcat安装,apache,tomcat,nsis,Apache,Tomcat,Nsis,我一直在尝试在NSIS脚本中检测Tomcat是否安装在主机系统上 Section Tomcat ClearErrors Var /GLOBAL tomcatVersion ReadRegStr $tomcatVersion HKLM "SOFTWARE\Apache Software Foundation\Tomcat\7.0\Tomcat7" "InstallPath" ;ExecWait "$EXEDIR\apache-tomcat-7.0.22.exe" DetailPrint "$t
Section Tomcat
ClearErrors
Var /GLOBAL tomcatVersion
ReadRegStr $tomcatVersion HKLM "SOFTWARE\Apache Software Foundation\Tomcat\7.0\Tomcat7" "InstallPath"
;ExecWait "$EXEDIR\apache-tomcat-7.0.22.exe"
DetailPrint "$tomcatVersion"
SectionEnd
当我转到“regedit”并检查该特定键的路径时,它有一个值,但print语句返回一个空白
有人能建议什么是解决此问题和/或我可能面临的任何错误的最佳方法吗
我注意到一件有趣的事情,如果在上面的代码中,如果我将ReadRegStr命令指向read
HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion"
它返回一个值,因此从语法上讲,代码可以工作。- 如果Tomcat安装程序是64位安装程序,那么32位进程将找不到该密钥,在NSIS中,您可以使用
SetRegView 64
- 如果您在脚本中使用
,并且Tomcat安装程序是由UAC虚拟化的,那么您必须从中读取它(在您的情况下不太可能,因为您可以在regedit中看到密钥)requestExecutionLevel
- 还可以方便地调试注册表问题
谢谢,这很有效。。在读取注册表之前添加行“SetRegView 64”提供了该值。