123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194 |
- ${SegmentFile}
- ;=== START INTEGRITY CHECK 1.1 Var
- Var bolCustomIntegrityCheckStartUnsupported
- Var strCustomIntegrityCheckVersion
- ;=== END INTEGRITY CHECK
- !include WinMessages.nsh
- ${Segment.OnInit}
- ;=== START INTEGRITY CHECK 1.1 OnInit
- ;Check for improper install/upgrade without running the PA.c Installer which can cause issues
- ;Designed to not require ReadINIStrWithDefault which is not included in the PA.c Launcher code
-
- ${If} ${FileExists} "$EXEDIR\App\AppInfo\appinfo.ini"
- ${If} ${FileExists} "$EXEDIR\App\AppInfo\pac_installer_log.ini"
- ReadINIStr $R0 "$EXEDIR\App\AppInfo\pac_installer_log.ini" "PortableApps.comInstaller" "Info2"
- ${If} $R0 == "This file was generated by the PortableApps.com Installer wizard and modified by the official PortableApps.com Installer TM Rare Ideas, LLC as the app was installed."
- StrCpy $R1 "true"
- ${Else}
- StrCpy $R1 "false"
- ${EndIf}
- ${Else}
- StrCpy $R1 "false"
- ${EndIf}
- ${Else}
- StrCpy $R1 "true"
- ${EndIf}
-
- ${If} $R1 == "false"
- ;Upgrade or install sans the PortableApps.com Installer which can cause compatibility issues
- ClearErrors
- ReadINIStr $0 "$EXEDIR\App\AppInfo\appinfo.ini" "Version" "PackageVersion"
- ${If} ${Errors}
- ${OrIf} $0 == ""
- StrCpy $0 "0.0.0.1"
- ClearErrors
- ${EndIf}
- ClearErrors
- ReadINIStr $1 "$EXEDIR\Data\settings\${AppID}Settings.ini" "${AppID}Settings" "InvalidPackageWarningShown"
- ${If} ${Errors}
- ${OrIf} $1 == ""
- StrCpy $1 "0.0.0.0"
- ClearErrors
- ${EndIf}
- ${VersionCompare} $0 $1 $2
- ${If} $2 == 1
- MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2 `Integrity Failure Warning: ${NamePortable} was installed or upgraded without using its installer and some critical files may have been modified. This could cause data loss, personal data left behind on a shared PC, functionality issues, and/or may be a violation of the application's license. Neither the application publisher nor PortableApps.com will be responsible for any issues you encounter.$\r$\n$\r$\nWould you like to start ${NamePortable} in its current unsupported state?` IDYES CustomIntegrityCheckGotoStartAnyway IDNO CustomIntegrityCheckGotoDownloadQuestion
-
- CustomIntegrityCheckGotoDownloadQuestion:
- ;Check to ensure we have a valid homepage before asking the user
- StrCpy $R0 ""
- ${If} ${FileExists} "$EXEDIR\App\AppInfo\appinfo.ini"
- ReadINIStr $R0 "$EXEDIR\App\AppInfo\appinfo.ini" "Details" "Homepage"
- ${EndIf}
-
- ${If} $R0 == ""
- Abort
- ${Else}
- StrCpy $R1 $R0 4
- ${If} $R1 != "http"
- ${AndIf} $R1 != "HTTP"
- StrCpy $R0 "http://$R0"
- ${EndIf}
- ${EndIf}
-
- MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON1 `Would you like to visit the ${NamePortable} homepage to download the app and upgrade your current install?` IDYES CustomIntegrityCheckGotoURL IDNO CustomIntegrityCheckGotoAbort
- CustomIntegrityCheckGotoURL:
- ExecShell "open" $R0
- Abort
-
- CustomIntegrityCheckGotoAbort:
- Abort
-
- CustomIntegrityCheckGotoStartAnyway:
- StrCpy $bolCustomIntegrityCheckStartUnsupported true
- StrCpy $strCustomIntegrityCheckVersion $0
- ${EndIf}
- ${EndIf}
- ;=== END INTEGRITY CHECK
- !macroend
- ${SegmentInit}
- ;Ensure we have a proper Documents path
- ExpandEnvStrings $1 "%PortableApps.comDocuments%"
- ${If} $1 == ""
- ${OrIfNot} ${FileExists} "$1\*.*"
- ${GetParent} $EXEDIR $3
- ${GetParent} $3 $1
- ${If} $1 == "" ;Be sure we didn't just GetParent on Root
- StrCpy $1 $3
- ${EndIf}
- ${If} ${FileExists} "$1\Documents\*.*"
- StrCpy $2 "$1\Documents"
- ${Else}
- ${GetRoot} $EXEDIR $1
- ${If} ${FileExists} "$1\Documents\*.*"
- StrCpy $2 "$1\Documents"
- ${Else}
- StrCpy $2 "$1"
- ${EndIf}
- ${EndIf}
- System::Call 'Kernel32::SetEnvironmentVariable(t, t) i("PortableApps.comDocuments", "$2").r0'
- ${EndIf}
- !macroend
- ${SegmentPre}
- ReadEnvStr $0 "JAVA_HOME"
- ${WordReplace} $0 "\" "/" "+" $1
- System::Call 'Kernel32::SetEnvironmentVariable(t, t) i("JAVA_HOME_FORWARDSLASH", "$1").r0'
- !macroend
- ${SegmentPrePrimary}
- ;=== START INTEGRITY CHECK 1.1 PrePrimary
- ${If} $bolCustomIntegrityCheckStartUnsupported == true
- WriteINIStr "$EXEDIR\Data\settings\${AppID}Settings.ini" "${AppID}Settings" "InvalidPackageWarningShown" $strCustomIntegrityCheckVersion
- ${EndIf}
- ;=== END INTEGRITY CHECK
- ;Load app ttf fonts
- FindFirst $0 $1 "$EXEDIR\App\fonts\*.ttf"
- ${DoWhile} $1 != ""
- System::Call "gdi32::AddFontResource(t'$EXEDIR\App\fonts\$1')i .r2"
- FindNext $0 $1
- ${Loop}
- FindClose $0
-
- ;Load app otf fonts
- FindFirst $0 $1 "$EXEDIR\App\fonts\*.otf"
- ${DoWhile} $1 != ""
- System::Call "gdi32::AddFontResource(t'$EXEDIR\App\fonts\$1')i .r2"
- FindNext $0 $1
- ${Loop}
- FindClose $0
-
- ;Load user ttf fonts
- FindFirst $0 $1 "$EXEDIR\Data\fonts\*.ttf"
- ${DoWhile} $1 != ""
- System::Call "gdi32::AddFontResource(t'$EXEDIR\Data\fonts\$1')i .r2"
- FindNext $0 $1
- ${Loop}
- FindClose $0
-
- ;Load user otf fonts
- FindFirst $0 $1 "$EXEDIR\Data\fonts\*.otf"
- ${DoWhile} $1 != ""
- System::Call "gdi32::AddFontResource(t'$EXEDIR\Data\fonts\$1')i .r2"
- FindNext $0 $1
- ${Loop}
- FindClose $0
-
- ;Let all running apps know
- SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=1
- !macroend
- ${SegmentPostPrimary}
- ;Remove app ttf fonts
- FindFirst $0 $1 "$EXEDIR\App\fonts\*.ttf"
- ${DoWhile} $1 != ""
- System::Call "gdi32::RemoveFontResource(t'$EXEDIR\App\fonts\$1')i .r2"
- FindNext $0 $1
- ${Loop}
- FindClose $0
-
- ;Remove app otf fonts
- FindFirst $0 $1 "$EXEDIR\App\fonts\*.otf"
- ${DoWhile} $1 != ""
- System::Call "gdi32::RemoveFontResource(t'$EXEDIR\App\fonts\$1')i .r2"
- FindNext $0 $1
- ${Loop}
- FindClose $0
-
- ;Remove user ttf fonts
- FindFirst $0 $1 "$EXEDIR\Data\fonts\*.ttf"
- ${DoWhile} $1 != ""
- System::Call "gdi32::RemoveFontResource(t'$EXEDIR\Data\fonts\$1')i .r2"
- FindNext $0 $1
- ${Loop}
- FindClose $0
-
- ;Remove user otf fonts
- FindFirst $0 $1 "$EXEDIR\Data\fonts\*.otf"
- ${DoWhile} $1 != ""
- System::Call "gdi32::RemoveFontResource(t'$EXEDIR\Data\fonts\$1')i .r2"
- FindNext $0 $1
- ${Loop}
- FindClose $0
-
- ;Let all running apps know
- SendMessage ${HWND_BROADCAST} ${WM_FONTCHANGE} 0 0 /TIMEOUT=1
- !macroend
|