#pragma compile(Out, D:\Папка с обновлением\Update.exe)
#pragma compile(FileVersion, 1.0.0.0)
#pragma compile(ProductVersion, 1.1.0.0)
#include <GUIConstantsEx.au3>
#include <Misc.au3>
#include <Array.au3>
Global $sAppUpdate_Page = "D:\Папка с обновлением\Update.inf"
Global $sApp_Version = "1.1"
Global $hGUI = 0
;Here we checking in quiet mode (only if new version available there will be a message).
_AppCheckUpdates_Proc($sAppUpdate_Page, $sApp_Version, 1)
#Region GUI Part
$hGUI = GUICreate("My Application", 300, 200)
$App_Ver = GUICtrlCreateLabel("Текущая версия " & $sApp_Version, 10, 20)
$CheckUpdates_Button = GUICtrlCreateButton("Проверить обновление", 150, 170, 140, 20)
$Exit_Button = GUICtrlCreateButton("Выход", 20, 170, 60, 20)
GUISetState(@SW_SHOW, $hGUI)
#EndRegion GUI Part
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $Exit_Button
Exit
Case $CheckUpdates_Button
_AppCheckUpdates_Proc($sAppUpdate_Page, $sApp_Version)
EndSwitch
WEnd
Func _AppCheckUpdates_Proc($sServer_Page, $sCurrent_AppVersion, $iMode=-1) ;$iMode <> -1 to check quitly
Local $sUpdate_Version = IniRead($sServer_Page, "info", "Update Version", "")
Local $sUpdate_File = IniRead($sServer_Page, "info", "Update File", "")
If @error=1 Then
If $iMode = -1 Then MsgBox(48, "Update check", _
StringFormat("Возникла ошибка (%i) при проверке обновления, пожалуйста, свяжитесь с автором.", 1), 0, $hGUI)
Return SetError(1, 0, 0)
EndIf
If _VersionCompare($sUpdate_Version, $sCurrent_AppVersion) = 1 Then
Local $iUpdate_Ask = MsgBox(36, "Проверка обновления", _
StringFormat("Доступна новая версия (%s).\n\nЖелаете обновить?", $sUpdate_Version), _
0, $hGUI)
If $iUpdate_Ask <> 6 Then Return 0
Local $sScript_Name = StringTrimRight(@ScriptName, 4) & ".exe"
Local $iInetGet = FileCopy($sUpdate_File, @TempDir & "\" & $sScript_Name, 1)
Run(@ComSpec & ' /c Ping -n 2 localhost > nul & Move /y "' & _
@TempDir & '\' & $sScript_Name & '" "' & @ScriptFullPath & '" & Start "" "' & @ScriptFullPath & '"', '', @SW_HIDE)
Exit
EndIf
If $iMode = -1 Then MsgBox(48, "Проверка обновления", "Вы используете самую новую версию программы", 0, $hGUI)
Return 1
EndFunc