1
0
mirror of https://github.com/heebijeebi/WinTango-Patcher.git synced 2024-06-22 05:21:56 +02:00
Files
wintango-patcher/project/Patcher.au3
2017-10-11 13:56:24 +02:00

623 lines
20 KiB
AutoIt

#include <Misc.au3>
#include <IE.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <ListViewConstants.au3>
#include <SliderConstants.au3>
#include <StaticConstants.au3>
#include <UpDownConstants.au3>
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIScrollBars.au3>
#include <ScrollBarConstants.au3>
#include <File.au3>
#include <GuiListBox.au3>
#include <Inet.au3>
#include <ColorConstants.au3>
;custom
#include <_UDFs\GUICtrlOnHover.au3>
#include <_UDFs\CommonFunctions.au3>
#include <_UDFs\FuncInstUpdDeinst.au3>
#include <_UDFs\XML_Handling.au3>
#include <_UDFs\MoveFileEx.au3>
#include <FuncMisc.au3>
#include <JobsPatcher.au3>
#include <JobsUninstaller.au3>
#include <JobsReloader.au3>
#include <PatcherStrings.au3>
#include <PatcherGUI.au3>
#NoTrayIcon
#Region Initiating
;Permissions
#AutoIt3Wrapper_Res_requestedExecutionLevel=requireAdministrator
#RequireAdmin
DllCall("kernel32.dll", "int", "Wow64DisableWow64FsRedirection", "int", 1) ;Umleitung für x86-Programm abschalten
RegWrite("HKCU\AppEvents\Schemes\Apps\.Default\Close\.Current", "", "REG_EXPAND_SZ", "")
RegWrite("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager", "AllowProtectedRenames", "REG_DWORD", "0x00000001")
;Defines
Defines() ;Global Standards
$errorFlag = 0
;Define Windows Version for further usage & make sure that the Patcher only runs on supported Windows Versions
Global $WinName = _GetWinVer()
If $WinName = "Not supported" Then
MsgBox(16, "Compatibility", "This version of " & $AppName & " does not support your Windows Version.")
Exit
EndIf
;Icon Theme
Global $SelectedTheme = RegRead($AppRegKey, "IconTheme")
If $SelectedTheme = "" Then
$SelectedTheme = "Tango"
ElseIf $SelectedTheme = "brave" Then ;can be deleted after a few releases
$SelectedTheme = "Gnome-Brave"
ElseIf $SelectedTheme = "human" Then ;can be deleted after a few releases
$SelectedTheme = "Gnome-Human"
ElseIf $SelectedTheme = "noble" Then ;can be deleted after a few releases
$SelectedTheme = "Gnome-Noble"
ElseIf $SelectedTheme = "wine" Then ;can be deleted after a few releases
$SelectedTheme = "Gnome-Wine"
ElseIf $SelectedTheme = "wise" Then ;can be deleted after a few releases
$SelectedTheme = "Gnome-Wise"
EndIf
;localized Strings
_Strings_Patcher()
_Strings_Reloader()
_Strings_Uninstaller()
;Check: Only one Instance of the App should run
If _Singleton($AppName,1) = 0 Then
Msgbox(48, $string_msgSingleInstance, $AppName & " " & $string_msgSingleInstance_msg)
Exit
EndIf
;COM-Error Handler
$oMyError = ObjEvent("AutoIt.Error","MyErrFunc") ;Initialize a COM error handler
Func MyErrFunc() ;This is my custom defined error handler
$errorMsg = "We intercepted a COM Error!" & @CRLF & @CRLF & _
"err.description is: " & @TAB & $oMyError.description & @CRLF & _
"err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
"err.number is: " & @TAB & hex($oMyError.number,8) & @CRLF & _
"err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
"err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
"err.source is: " & @TAB & $oMyError.source & @CRLF & _
"err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
"err.helpcontext is: " & @TAB & $oMyError.helpcontext
Debug($errorMsg)
Msgbox(0,$AppName & "Error Handler",$errorMsg)
Endfunc
;Objects
Global $FilesList = ObjCreate("System.Collections.ArrayList")
If @error=1 Then MsgBox(0,"Object Error","There was an error with creating the Object ''$FilesList''")
Global $CheckboxesDict = ObjCreate("Scripting.Dictionary")
If @error=1 Then MsgBox(0,"Object Error","There was an error with creating the Object ''$CheckboxesDict''")
Global $InstallFiles = ObjCreate("System.Collections.Queue")
If @error=1 Then MsgBox(0,"Object Error","There was an error with creating the Object ''$InstallFiles''")
Global $FilesListApps = ObjCreate("System.Collections.ArrayList")
If @error=1 Then MsgBox(0,"Object Error","There was an error with creating the Object ''$FilesListApps''")
Global $CheckboxesDictApps = ObjCreate("Scripting.Dictionary")
If @error=1 Then MsgBox(0,"Object Error","There was an error with creating the Object ''$CheckboxesDictApps''")
Global $InstallFilesApps = ObjCreate("System.Collections.Queue")
If @error=1 Then MsgBox(0,"Object Error","There was an error with creating the Object ''$InstallFilesApps''")
;PreInstall
_PreInstall()
_CleanupOld()
;Misc
Global $CurrentStatus = "idle"
Global $UpdatedFileCount = 1
#EndRegion
#Region Commandline Switches
;Modus
If $CmdLine[0] = 0 Then
Global $Modus = "Patcher"
ElseIf _StringInArray($CmdLine, '/uninstall') Then
Global $Modus = "Uninstaller"
ElseIf _StringInArray($CmdLine, '/reload') Then
Global $Modus = "Reloader"
Else
;_Show_CMD_Reference()
Global $Modus = "Patcher"
EndIf
If FileExists($Modus & ".log") Then FileDelete($Modus & ".log")
;Theme
If not $CmdLine[0] = 0 Then
If _StringInArray($CmdLine, '/theme=gnome') Then $SelectedTheme = "gnome"
If _StringInArray($CmdLine, '/theme=gnome-brave') Then $SelectedTheme = "gnome-brave"
If _StringInArray($CmdLine, '/theme=gnome-human') Then $SelectedTheme = "gnome-human"
If _StringInArray($CmdLine, '/theme=gnome-noble') Then $SelectedTheme = "gnome-noble"
If _StringInArray($CmdLine, '/theme=gnome-wine') Then $SelectedTheme = "gnome-wine"
If _StringInArray($CmdLine, '/theme=gnome-wise') Then $SelectedTheme = "gnome-wise"
If _StringInArray($CmdLine, '/theme=cheser') Then $SelectedTheme = "cheser"
If _StringInArray($CmdLine, '/theme=tango') Then $SelectedTheme = "tango"
If _StringInArray($CmdLine, '/theme=tangerine') Then $SelectedTheme = "tangerine"
If _StringInArray($CmdLine, '/theme=elementary') Then $SelectedTheme = "elementary"
If _StringInArray($CmdLine, '/theme=humanity') Then $SelectedTheme = "humanity"
EndIf
;Silent
Global $SilentInstall = 0
If not $CmdLine[0] = 0 Then
If _StringInArray($CmdLine, '/S') Then
$SilentInstall = 1
EndIf
EndIf
#EndRegion
#Region Patcher Modus
If $Modus = "Uninstaller" Then
If $SilentInstall = 0 Then
$UninstQuery = MsgBox(48+4, $string_msgUninstall, $string_msgUninstall_msg)
If $UninstQuery = 7 Then
Exit
EndIf
EndIf
PatcherGUI("Uninstaller")
ElseIf $Modus = "Reloader" Then
Global $UpdatedFileCount = 0
PatcherGUI("Reloader")
Else
;MainGUI
PatcherGUI("Patcher")
EndIf
#EndRegion
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
If $CurrentStatus = "busy" Then
$CancelMsg = MsgBox(64, $string_msgExit, $string_msgNoExit_msg)
Else
$CancelMsg = MsgBox(48+1, $string_msgExit, $string_msgExit_msg)
If $CancelMsg = 1 Then ExitPatcher()
EndIf
;Tab: Actions
Case $comboIconTheme
$SelectedTheme_old = $SelectedTheme
$SelectedTheme = GUICtrlRead($comboIconTheme)
;Preview
If $SelectedTheme_old <> $SelectedTheme Then
GUICtrlSetImage($icoPreview1, $IconsDir & "\" & $SelectedTheme & "\video-display.ico")
GUICtrlSetImage($icoPreview2, $IconsDir & "\" & $SelectedTheme & "\go-next.ico")
GUICtrlSetImage($icoPreview3, $IconsDir & "\" & $SelectedTheme & "\drive-harddisk.ico")
GUICtrlSetImage($icoPreview4, $IconsDir & "\" & $SelectedTheme & "\folder.ico")
GUICtrlSetImage($icoMail, $IconsDir & "\" & $SelectedTheme & "\applications-mail.ico")
GUICtrlSetImage($icoHomepage, $IconsDir & "\" & $SelectedTheme & "\web-browser.ico")
GUICtrlSetImage($icoNotes, $IconsDir & "\" & $SelectedTheme & "\text-x-license.ico")
GUICtrlSetImage($icoChangelog, $IconsDir & "\" & $SelectedTheme & "\text-x-changelog.ico")
EndIf
;Choose matching VS
If $SelectedTheme = "Humanity" or $SelectedTheme = "Tangerine" Then
ControlCommand($MainGUI, "", $comboVisualStyle, "SelectString", "Ubuntu")
ElseIf $SelectedTheme = "elementary" Then
ControlCommand($MainGUI, "", $comboVisualStyle, "SelectString", "elementary")
Else
ControlCommand($MainGUI, "", $comboVisualStyle, "SelectString", "Shiki-Colors")
EndIf
;Choose matching Cursors
If GUICtrlRead($comboVisualStyle) = "elementary" Then
ControlCommand($MainGUI, "", $comboCursors, "SelectString", "elementary")
GUICtrlSetImage($icoCursors_prev, $IconsDir & "\cursors-elementary.ico")
Else
ControlCommand($MainGUI, "", $comboCursors, "SelectString", "Ubuntu")
GUICtrlSetImage($icoCursors_prev, $IconsDir & "\cursors-ubuntu.ico")
EndIf
;Choose matching TrayIcons
If GUICtrlRead($comboVisualStyle) = "elementary" Then
ControlCommand($MainGUI, "", $comboTrayIcons, "SelectString", "Symbolic")
Else
ControlCommand($MainGUI, "", $comboTrayIcons, "SelectString", "Colorfull")
EndIf
Case $btnPatch
If $CurrentStatus = "idle" Then
Patch() ;Action!
ElseIf $CurrentStatus = "done" Then
If $UpdatedFileCount > 0 Then Shutdown(6) ;Neustarten erzwingen
ExitPatcher()
ElseIf $CurrentStatus = "error" Then
ShellExecute($AppBugReport)
ShellExecute("Patcher.log")
ExitPatcher()
EndIf
;Tab: Options
Case $switchTrayIcons
$OptTrayIcons = Switch_ChangeState($OptTrayIcons, $switchTrayIcons)
If $OptTrayIcons = 0 Then
GUICtrlSetState($comboTrayIcons, $GUI_DISABLE)
Else
GUICtrlSetState($comboTrayIcons, $GUI_ENABLE)
EndIf
Case $switchStartOrb
$OptStartOrb = Switch_ChangeState($OptStartOrb, $switchStartOrb)
Case $switchNotepad2
$OptNotepad2 = Switch_ChangeState($OptNotepad2, $switchNotepad2)
Case $switchDesktops
$OptDesktops = Switch_ChangeState($OptDesktops, $switchDesktops)
Case $switchUpdater
$OptUpdater = Switch_ChangeState($OptUpdater, $switchUpdater)
Case $switchReloader
$OptReloader = Switch_ChangeState($OptReloader, $switchReloader)
Case $switchVisualStyle
If $WinName <> "Win10" Then ;dont let the user switch it on, when using Win10
$OptVisualStyle = Switch_ChangeState($OptVisualStyle, $switchVisualStyle)
If $OptVisualStyle = 0 Then
GUICtrlSetState($chkUniversalThemePatcher, $GUI_UNCHECKED)
GUICtrlSetState($chkUniversalThemeService, $GUI_UNCHECKED)
GUICtrlSetState($chkUniversalThemePatcher, $GUI_DISABLE)
GUICtrlSetState($chkUniversalThemeService, $GUI_DISABLE)
GUICtrlSetState($comboVisualStyle, $GUI_DISABLE)
Else
GUICtrlSetState($chkUniversalThemePatcher, $CheckBoxStatusWinAll)
GUICtrlSetState($chkUniversalThemeService, $CheckBoxStatusWinAll_un)
GUICtrlSetState($chkUniversalThemePatcher, $GUI_ENABLE)
GUICtrlSetState($chkUniversalThemeService, $GUI_ENABLE)
GUICtrlSetState($comboVisualStyle, $GUI_ENABLE)
EndIf
EndIf
Case $comboVisualStyle
If GUICtrlRead($comboVisualStyle) = "elementary" Then
ControlCommand($MainGUI, "", $comboCursors, "SelectString", "elementary")
GUICtrlSetImage($icoCursors_prev, $IconsDir & "\cursors-elementary.ico")
Else
ControlCommand($MainGUI, "", $comboCursors, "SelectString", "Ubuntu")
GUICtrlSetImage($icoCursors_prev, $IconsDir & "\cursors-ubuntu.ico")
EndIf
Case $switchCursors
$OptCursors = Switch_ChangeState($OptCursors, $switchCursors)
If $OptCursors = 0 Then
GUICtrlSetState($comboCursors, $GUI_DISABLE)
Else
GUICtrlSetState($comboCursors, $GUI_ENABLE)
EndIf
Case $comboCursors
If GUICtrlRead($comboCursors) = "elementary" Then
GUICtrlSetImage($icoCursors_prev, $IconsDir & "\cursors-elementary.ico")
Else
GUICtrlSetImage($icoCursors_prev, $IconsDir & "\cursors-ubuntu.ico")
EndIf
Case $switchWallpapers
$OptWallpapers = Switch_ChangeState($OptWallpapers, $switchWallpapers)
;Tab: Advanced Options
Case $tab
; Check which Tab is active
$iCurrTab = GUICtrlRead($tab)
; If the Tab has changed
If $iCurrTab = 2 Then
GUISetState(@SW_SHOW, $FilesGUI)
Else
GUISetState(@SW_HIDE, $FilesGUI)
EndIf
Case $btnEditAppPaths
ShellExecuteWait("filesApps.ini")
;Tab: About
Case $lblMail
_INetMail($AppMail, "WinTango Patcher", "")
Case $lblHomepage
ShellExecute($AppWebsite)
Case $lblDeviantart
ShellExecute($AppWebsite2)
Case $lblNotes
ShellExecute("Release Notes.txt")
Case $lblChangelog
ShellExecute("Changelog.txt")
EndSwitch
WEnd
#Region: Patcher Routines
Func _PreInstall()
DirCreate(@ScriptDir & "\Themes")
DirCreate($ToolsDir)
DirCreate($BackupDir)
DirCreate($LogsDir)
DirCreate($NewFilesDir)
DirCreate($OverrideDir)
If $OsArch = "x64" Then
DirCreate($BackupDir64)
DirCreate($LogsDir64)
DirCreate($NewFilesDir64)
DirCreate($OverrideDir64)
EndIf
EndFunc
Func _CleanupOld()
;since v16.01.07
FileDelete(@ScriptDir & "\images.dll")
FileDelete(@ScriptDir & "\Readme.pdf")
FileDelete($ToolsDir & "\OpaqueTaskbar*.*")
FileDelete($ToolsDir & "\UXThemePatchers.txt")
FileDelete($ToolsDir & "\UltraUXThemePatcher_*.exe")
FileDelete($ToolsDir & "\UXTheme_Multi-Patcher_*.exe")
;since v16.12.24
FileDelete(@ScriptDir & "\Themes\files-desktops-*.7z")
FileDelete(@ScriptDir & "\Themes\files-notepad2-*.7z")
FileDelete(@ScriptDir & "\Themes\images-*.7z")
FileDelete(@ScriptDir & "\Themes\theme-*.7z")
FileDelete(@ScriptDir & "\Themes\icons-*.7z")
FileDelete(@ScriptDir & "\Themes\bitmaps-*.7z")
EndFunc
Func Patch()
GUICtrlSetState($tab, $GUI_DISABLE)
GUICtrlSetState($comboIconTheme, $GUI_DISABLE)
GUICtrlSetState($btnPatch, $GUI_DISABLE)
$CurrentStatus = "busy"
;Now that the user started patching, delete old files to prevent left over files / clear update registry
DirRemove($ResourcesDir, 1)
RegWrite($AppRegKey, "UpdatedPaks", "REG_SZ", "none")
;LOGs
DirRemove($LogsDir, 1)
DirCreate($LogsDir)
If $OsArch = "x64" Then DirCreate($LogsDir64)
;Download all the needed resources
Debug("=== Extract Basics Start ===")
ExtractResources()
Local $iSize = DirGetSize($ResourcesDir)
Debug("Resources DirSize: " & Round($iSize / 1024 / 1024) & " MB")
;Error-Check
If $iSize = -1 or $iSize = 0 Then
InstallMsg("Error: Resources Dir empty or not existing!")
$errorFlag = 1
EndIf
;Error-Check End
Debug("=== Extract Basics End ===")
;The patching magic:
If $errorFlag = 0 Then
Debug("=== ApplyOptions Start ===")
Apply_OS_Res()
If $OptTrayIcons = 1 Then
If GUICtrlRead($comboTrayIcons) = "Symbolic" Then Apply_SymbolicTray()
Else
Apply_NoTray()
EndIf
If $OptStartOrb = 0 Then Apply_NoStartOrb()
If $OptVisualStyle = 1 Then ApplyTheme_VisualStyle(GUICtrlRead($comboVisualStyle))
If $OptWallpapers = 1 Then ApplyTheme_Wallpapers()
If $OptCursors = 1 Then ApplyTheme_Cursors(GUICtrlRead($comboCursors))
If $OptNotepad2 = 1 Then Apply_Notepad2()
If $OptDesktops = 1 Then Apply_Desktops()
If $OptUpdater = 1 Then Apply_UpdaterStartup()
If $OptReloader = 1 Then Apply_ReloaderStartup()
Debug("=== ApplyOptions End ===")
Debug("=== ApplyAdvancedOptions Start ===")
If GUICtrlRead($chkNoShell32) = 1 Then
Global $NotPatchShell32 = 1 ;Don't patch shell32.dll
Else
Global $NotPatchShell32 = 0
EndIf
If GUICtrlRead($chkUsingIE) = 1 Then
Global $keepIEusable = 1 ;Internet Explorer Usability
Else
Global $keepIEusable = 0
EndIf
If GUICtrlRead($chkUniversalThemePatcher) = 1 Then ApplyTheme_UXThemePatch("direct")
If GUICtrlRead($chkUniversalThemeService) = 1 Then ApplyTheme_UXThemePatch("service")
Debug("=== ApplyAdvancedOptions Start ===")
Debug("=== PatchWindowsFiles Start ===")
If GUICtrlRead($chkBranding) = 1 Then ApplyTheme_Branding()
PatchWindowsFiles()
Debug("=== PatchWindowsFiles End ===")
Debug("=== ApplyAppearanceApps Start ===")
If GUICtrlRead($chkAimpTheme) = 1 Then ApplyTheme_Aimp() ;Aimp Shiki-Colors Theme
If GUICtrlRead($chkDiskInfoTheme) = 1 Then ApplyTheme_DiskInfo() ;CrystalDiskInfo Shiki-Colors Theme
If GUICtrlRead($chkfoobar2000Theme) = 1 Then ApplyTheme_Foobar2000() ;foobar2000 File Type Icons
If GUICtrlRead($chkFreeFileSyncTheme) = 1 Then ApplyTheme_FreeFileSync() ;FreeFileSync Theme
If GUICtrlRead($chkGimpTheme) = 1 Then ApplyTheme_Gimp() ;Gimp Theme/Images
If GUICtrlRead($chkInkscapeTheme) = 1 Then ApplyTheme_Inkscape() ;Inkscape Theme
If GUICtrlRead($chkjDownloaderTheme) = 1 Then ApplyTheme_jDownloader() ;jDownloader Theme
If GUICtrlRead($chkLibreOfficeTheme) = 1 Then ApplyTheme_LibreOffice() ;LibreOffice Images
If GUICtrlRead($chkMPCTheme) = 1 Then ApplyTheme_MPC() ;Media Player Classic HC Theme
If GUICtrlRead($chkMSOfficeTheme) = 1 Then ApplyTheme_MSOffice() ;Microsoft Office
If GUICtrlRead($chkFirefoxTheme) = 1 Then ApplyTheme_Firefox() ;Mozilla Firefox Theme
If GUICtrlRead($chkThunderbirdTheme) = 1 Then ApplyTheme_Thunderbird() ;Mozilla Thunderbird Theme
If GUICtrlRead($chkPidginTheme) = 1 Then ApplyTheme_Pidgin() ;Pidgin Theme
If GUICtrlRead($chkRadioSureTheme) = 1 Then ApplyTheme_RadioSure() ;RadioSure Theme
If GUICtrlRead($chkRainlendarTheme) = 1 Then ApplyTheme_Rainlendar() ;Rainlendar Theme
If GUICtrlRead($chkSMPlayerTheme) = 1 Then ApplyTheme_SMPlayer() ;SMPlayer Theme
If GUICtrlRead($chkUTorrentTheme) = 1 Then ApplyTheme_uTorrent() ;uTorrent 2.x Theme
If GUICtrlRead($chkVLCTheme) = 1 Then ApplyTheme_VLC() ;VLC Theme
If GUICtrlRead($chkWinylTheme) = 1 Then ApplyTheme_Winyl() ;Winyl Theme
Debug("=== ApplyAppearanceApps End ===")
Debug("=== PatchAppFiles Start ===")
PatchAppFiles()
Debug("=== PatchAppFiles End ===")
InstallMsg("Clearing Icon-/Thumbnail-Cache...")
ClearIconCache()
InstallMsg("done")
PostInstall()
EndIf
GUICtrlSetData($lstPatchStatus, @LF)
If $errorFlag = 0 Then
InstallMsg($string_msgPatchingDone) ;Patching completed.
InstallMsg($string_msgPatchingDoneRestart) ;In order to apply these changes you have to restart your system!
GUICtrlSetData($btnPatch, $string_btnRestart)
$CurrentStatus = "done"
Else
InstallMsg("The Patcher ended with an error!")
InstallMsg("Please report this Bug to me by clicking the button above!")
GUICtrlSetData($btnPatch, "Bugreport")
GUICtrlSetColor($btnPatch, "0xff0000")
$CurrentStatus = "error"
EndIf
GuiCtrlSetState($btnPatch, $GUI_ENABLE)
GuiCtrlSetState($btnPatch, $GUI_FOCUS)
EndFunc
#EndRegion
#Region: Uninstaller Routines
Func UnPatch()
GUICtrlSetState($tab, $GUI_DISABLE)
GUICtrlSetState($comboIconTheme, $GUI_DISABLE)
GUICtrlSetState($btnPatch, $GUI_DISABLE)
$CurrentStatus = "busy"
;The uninstalling magic:
UnAppearance()
UnFiles($IniFileWin)
UnFiles($IniFileApps)
InstallMsg("Clearing Icon-/Thumbnail-Cache...")
ClearIconCache()
InstallMsg("done")
;Messages
InstallMsg($string_msgUninstalling)
PostUnInstall()
InstallMsg("done")
GUICtrlSetData($lstPatchStatus, @LF)
InstallMsg($string_msgUninstallingDone)
InstallMsg($string_msgUninstallingDoneRestart)
GUICtrlSetData($btnPatch, $string_btnRestart)
GuiCtrlSetState($btnPatch, $GUI_ENABLE)
GuiCtrlSetState($btnPatch, $GUI_FOCUS)
$CurrentStatus = "done"
EndFunc
#EndRegion
#Region: Reloader Routines
Func Reload()
GUICtrlSetState($tab, $GUI_DISABLE)
GUICtrlSetState($comboIconTheme, $GUI_DISABLE)
GUICtrlSetState($btnPatch, $GUI_DISABLE)
$CurrentStatus = "busy"
;The reloading magic:
ReAppearance()
ReFiles($IniFileWin)
ReFiles($IniFileApps)
;Messages
If $SilentInstall = 0 Then
If $UpdatedFileCount > 0 Then
;bei neuen dateien
InstallMsg("Clearing Icon-/Thumbnail-Cache...")
ClearIconCache()
InstallMsg("done")
GUICtrlSetData($lstPatchStatus, @LF)
InstallMsg($UpdatedFileCount & " " & $string_msgReloaderDone)
InstallMsg($string_msgReloaderDone2)
InstallMsg($string_msgReloaderDoneRestart)
GUICtrlSetData($btnPatch, $string_btnRestart)
GuiCtrlSetState($btnPatch, $GUI_ENABLE)
GuiCtrlSetState($btnPatch, $GUI_FOCUS)
Else
;keine veränderungen
GUICtrlSetData($lstPatchStatus, @LF)
InstallMsg($string_msgReloaderNone)
GUICtrlSetData($btnPatch, $string_btnClose)
GuiCtrlSetState($btnPatch, $GUI_ENABLE)
GuiCtrlSetState($btnPatch, $GUI_FOCUS)
EndIf
EndIf
PostReload()
$CurrentStatus = "done"
If $SilentInstall = 1 Then
;Silent - show MsgBox only if modified files were found
If $UpdatedFileCount > 0 Then
ClearIconCache()
$RestartQuery = MsgBox(36, $AppName & " Reloader", $UpdatedFileCount & " " & $string_msgReloaderSilent)
If $RestartQuery = 6 Then
Shutdown(6) ;Neustarten erzwingen
Exit
Else
Exit
EndIf
Else
Exit
EndIf
EndIf
EndFunc
#EndRegion
Func ExitPatcher()
DirRemove($NewFilesDir, 1)
;If $modus = "Uninstaller" and $CurrentStatus = "done" then _SelfDelete(2)
Exit
EndFunc