update
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
${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
|
||||
Reference in New Issue
Block a user