X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=altosui%2FInstdrv%2FNSIS%2FIncludes%2Fjava.nsh;h=cd47c1b53337ff5205256dae4d05c872d7f12f7f;hp=ebf1c5b96071223146a54f441ed021ecd1884557;hb=5a51efd7f9b49ffadc91ccaf7a0d69566301c009;hpb=bb7522acf040f41740ecd059e3d5d2480b652420;ds=sidebyside 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