Что нового

AppCheckUpdate - Модуль [авто]обновления своей программы

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 443
Репутация
2 393
Версия AutoIt
3.3.14.5
Версия
1.1
Категория: Вспомогательные функции, Интернет, Разное

Описание: Данная библиотека предназначена для обновление вашей программы.
Поддерживает скрытый режим.

Примеры использования есть в архиве.

Код/Пример:
Код:
#include <GUIConstantsEx.au3>
#include 'AppCheckUpdates.au3'

$APPCU_7ZIP                    = @ScriptDir & '\Resources\7z.exe'
$APPCU_DAT_URL                 = 'http://creator-lab.ucoz.ru/Testing_Zone/MyApp_Update.dat'
$APPCU_APP_NAME             = 'My App'
$APPCU_APP_VER                 = _GetResData('FileVersion')

Global $sConfig_File         = @ScriptDir & '\Config.ini'

Global $iUpdate_Check         = Int(IniRead($sConfig_File, 'Update', 'Check Update', 1))
Global $iUpdate_Interval     = Int(IniRead($sConfig_File, 'Update', 'Update Interval', 72)) ;In hours
Global $iUpdate_Last_Check     = Int(IniRead($sConfig_File, 'Update', 'Last Update Check', 0))

#Region GUI Part

$hGUI = GUICreate('My Application - v' & $APPCU_APP_VER, 300, 200)

$CheckUpdates_Button = GUICtrlCreateButton('Check Updates', 200, 170, 90, 20)
$Exit_Button = GUICtrlCreateButton('Exit', 20, 170, 60, 20)

GUISetState(@SW_SHOW, $hGUI)

#EndRegion GUI Part

;Check update according to config settings
If $iUpdate_Check And (Not $iUpdate_Last_Check Or (TimerDiff($iUpdate_Last_Check) / 1000 / 60 / 60) >= $iUpdate_Interval) Then
    IniWrite($sConfig_File, 'Update', 'Last Update Check', TimerInit())
   
    ;Here we check in quit mode (only if new version available there will be a message)
    _AppCheckUpdates($hGUI, 1, 1, 'English')
EndIf

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE, $Exit_Button
            Exit
        Case $CheckUpdates_Button
            $iPID = _AppCheckUpdates($hGUI, -1, 1, 'English')
            ProcessWaitClose($iPID)
            $iError = Number(StdoutRead($iPID))
           
            If $iError Then
                MsgBox(64, $APPCU_APP_NAME, 'Error returned from _AppCheckUpdates: ' & $iError, 0, $hGUI)
            EndIf
    EndSwitch
WEnd

Func _GetResData($sRes)
    If @Compiled Then
        Return FileGetVersion(@AutoItExe, $sRes)
    EndIf
   
    Local $sRet = StringRegExpReplace(FileRead(@ScriptFullPath), '(?si)^.*?#pragma compile\(' & $sRes & ', [''"]?(.*?)[''"]?\)\r\n.*$', '\1')
   
    If @extended = 0 Then
        $sRet = StringRegExpReplace(FileRead(@ScriptFullPath), '(?si)^.*?#AutoIt3Wrapper_Res_' & $sRes & '=([^\r\n]+).*$', '\1')
       
        If @extended = 0 Then
            Return $sRes
        EndIf
    EndIf
   
    Return StringStripWS($sRet, 3)
EndFunc

Файл: AppCheckUpdate.zip

История версий:
1.1
* Исправлена проблема с закрытием программы после обновления.
* Исправлена проблема с резервным копированием всех файлов текущей папки. Теперь резервируются только обновляемые файлы.
* Теперь поддерживается обновление только по zip-архиву.
* Убрано ограничение для не скомпилированных скриптов.
* $APPCU_DAT_FILE переименована в $APPCU_DAT_URL.
* Переименованы внутренние функции с __AppCheckUpdates_* в __APPCU_*.
* Убраны ненужные includ'ы и глобальные переменные.
* Добавлена утилита "Updater" для использования в сторонних приложениях (для разработчиков), с использованием данной библиотеки.
* Пример изменён.

1.0
* Первая публичная версия
 
Автор
G.Sandler (CreatoR)
Источник
Ссылка на источник

Вложения

Последнее редактирование:
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 443
Репутация
2 393
Обновление:

1.1
* Исправлена проблема с закрытием программы после обновления.
* Исправлена проблема с резервным копированием всех файлов текущей папки. Теперь резервируются только обновляемые файлы.
* Теперь поддерживается обновление только по zip-архиву.
* Убрано ограничение для не скомпилированных скриптов.
* $APPCU_DAT_FILE переименована в $APPCU_DAT_URL.
* Переименованы внутренние функции с __AppCheckUpdates_* в __APPCU_*.
* Убраны ненужные includ'ы и глобальные переменные.
* Добавлена утилита "Updater" для использования в сторонних приложениях (для разработчиков), с использованием данной библиотеки.
* Пример изменён.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 443
Репутация
2 393
Перезалил архив, исправлены некоторые ошибки, версия осталась прежней.
 

Alexxxander

Новичок
Сообщения
1
Репутация
0
CreatoR, просьба перезалить архив !
Ссылка перебрасывает на главную форума!
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 443
Репутация
2 393
Перезалил.
 
Верх