- Сообщения
- 8,673
- Репутация
- 2,486
- Версия AutoIt
- 3.3.14.5
- Версия
- 1.1
Категория: Вспомогательные функции, Интернет, Разное
Описание: Данная библиотека предназначена для обновление вашей программы.
Поддерживает скрытый режим.
Примеры использования есть в архиве.
Код/Пример:
Файл: AppCheckUpdate.zip
История версий:
Описание: Данная библиотека предназначена для обновление вашей программы.
Поддерживает скрытый режим.
Примеры использования есть в архиве.
Код/Пример:
Код:
#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
* Первая публичная версия
* Исправлена проблема с закрытием программы после обновления.
* Исправлена проблема с резервным копированием всех файлов текущей папки. Теперь резервируются только обновляемые файлы.
* Теперь поддерживается обновление только по zip-архиву.
* Убрано ограничение для не скомпилированных скриптов.
* $APPCU_DAT_FILE переименована в $APPCU_DAT_URL.
* Переименованы внутренние функции с __AppCheckUpdates_* в __APPCU_*.
* Убраны ненужные includ'ы и глобальные переменные.
* Добавлена утилита "Updater" для использования в сторонних приложениях (для разработчиков), с использованием данной библиотеки.
* Пример изменён.
1.0
* Первая публичная версия
- Автор
- G.Sandler (CreatoR)
- Источник
- Ссылка на источник
Вложения
Последнее редактирование: