diff options
Diffstat (limited to 'altosui/Instdrv/NSIS/Includes/java.nsh')
| -rw-r--r-- | altosui/Instdrv/NSIS/Includes/java.nsh | 126 | 
1 files changed, 121 insertions, 5 deletions
| diff --git a/altosui/Instdrv/NSIS/Includes/java.nsh b/altosui/Instdrv/NSIS/Includes/java.nsh index ebf1c5b9..cd47c1b5 100644 --- a/altosui/Instdrv/NSIS/Includes/java.nsh +++ b/altosui/Instdrv/NSIS/Includes/java.nsh @@ -32,19 +32,135 @@ Function GetJRE          Delete $2  FunctionEnd -Function DetectJRE +Function DoDetectJRE + +  DetailPrint "Desired Java version ${JRE_VERSION}" + +  ; Check in HKCU for CurrentVersion + +  ClearErrors +  ReadRegStr $2 HKCU "SOFTWARE\JavaSoft\Java Runtime Environment" \ +             "CurrentVersion" + +  IfErrors hklm_version + +  DetailPrint "HKEY_CURRENT_USER Java version $2" + +  ${VersionCompare} $2 ${JRE_VERSION} $3 + +  IntCmp $3 1 yes yes no + +hklm_version: + +  ; Check in HKLM for CurrentVersion + +  ClearErrors    ReadRegStr $2 HKLM "SOFTWARE\JavaSoft\Java Runtime Environment" \               "CurrentVersion" +   +  IfErrors hkcu_any -  DetailPrint "Desired Java version ${JRE_VERSION}" -  DetailPrint "Actual Java version $2" +  DetailPrint "HKEY_LOCAL_MACHINE Java version $2"    ${VersionCompare} $2 ${JRE_VERSION} $3 -  IntCmp $3 1 done done +  IntCmp $3 1 yes yes no -  Call GetJRE +hkcu_any: + +  ; Check in HKCU for any Java install + +  StrCpy $0 0 + +hkcu_any_loop: +  EnumRegKey $1 HKCU "SOFTWARE\JavaSoft" $0 + +  StrCmp $1 "Java Runtime Environment" found_hkcu + +  StrCmp $1 "" hklm_any +   +  IntOp $0 $0 + 1 + +  Goto hkcu_any_loop +   +found_hkcu: + +  DetailPrint "HKEY_CURRENT_USER has SOFTWARE\JavaSoft\$1" + +  Goto maybe + +hklm_any: + +  ; Check in HKCU for any Java install + +  StrCpy $0 0 + +hklm_any_loop: +  EnumRegKey $1 HKLM "SOFTWARE\JavaSoft" $0 + +  StrCmp $1 "Java Runtime Environment" found_hklm + +  StrCmp $1 "" no +   +  IntOp $0 $0 + 1 + +  Goto hklm_any_loop +   +found_hklm: + +  DetailPrint "HKEY_CURRENT_USER has SOFTWARE\JavaSoft\$1" + +  Goto maybe + +yes: +  StrCpy $0 2 +  Goto done + +maybe: +  StrCpy $0 1 +  Goto done + +no: +  StrCpy $0 0 +  Goto done    done:  FunctionEnd + +var dialog +var hwnd +var null + +var install +var quit +var skip + +Function DetectJRE + +  Call DoDetectJRE + +  IntCmp $0 1 ask_maybe ask_no yes + +ask_no: +  StrCpy $0 "No Java detected. Download and install?" +  Goto ask + +ask_maybe: +  StrCpy $0 "Cannot determine installed Java version. Download and install?" +  Goto ask + +ask: +  MessageBox MB_YESNOCANCEL $0 IDYES do_java IDNO skip_java + +bail: +  Abort + +do_java: +  Call GetJRE + + +skip_java: +yes: + +FunctionEnd | 
