2012-10-05 105 views
0

我一直在努力,如果是安裝在我的NSIS script.Here在主機系統上的Tomcat檢測是做它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 "$tomcatVersion" 
SectionEnd 

當我去的部分「regedit」並檢查該特定鍵的路徑,它有一個值,但打印語句返回一個空白。

有人可以提出什麼是解決這個問題和/或我可能面臨的任何錯誤的最佳方法?

有我注意到,如果在上面的代碼,如果我點ReadRegStr命令來讀取

HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" "CurrentVersion" 

它返回一個值,所以語法,代碼不工作一件有趣的事情。

回答

1
  • 如果Tomcat的安裝程序是一個64位安裝程序,然後在32位進程不會找到那把鑰匙,在NSIS可以使用SetRegView 64

  • 如果您使用的是你的腳本RequestExectionLevel和Tomcat的安裝程序是由UAC虛擬化,那麼你必須從VirtualStore(不太可能在你的情況,因爲你可以看到在註冊表編輯器的鍵)閱讀

  • Process Monitor是也方便調試註冊表問題...

+0

謝謝,這工作..在讀取註冊表之前添加行「SetRegView 64」提供了值。 – Rupin