Что нового

Обновление

arabnesso

Чайник
Сообщения
17
Репутация
0
Версия AutoIt: 3.
Описание: Нужно сделать, чтобы этот скрипт обновлял не сам себя, а другую программу по наличии новой версии.
Код:
#include <Misc.au3>
#include <Inet.au3>
;

Global $sAppUpdate_Page = "http://site/check/MyApp_Update.inf"
Global $sApp_Version = "1.0"

;Here we checking in quiet mode (only if new version available there will be a message).
_AppCheckUpdates_Proc($sAppUpdate_Page, $sApp_Version, 1)

Func _AppCheckUpdates_Proc($sServer_Page, $sCurrent_AppVersion, $iMode=-1) ;$iMode <> -1 to check quitly
    Local $sUpdate_Info = _INetGetSource($sServer_Page)

    If Not StringInStr($sUpdate_Info, "[Info]") Then
        If $iMode = -1 Then MsgBox(48, "Update check", _
            StringFormat("There was an error (%i) to check update, please contact with the author.", 1), 0, $hGUI)

        Return SetError(1, 0, 0)
    EndIf

    Local $sUpdate_Version = StringRegExpReplace($sUpdate_Info, "(?s)(?i).*Update Version=(.*?)(\r|\n).*", "\1")
    Local $sUpdate_File = StringRegExpReplace($sUpdate_Info, "(?s)(?i).*Update File=(.*?)(\r|\n).*", "\1")

    If _VersionCompare($sUpdate_Version, $sCurrent_AppVersion) = 1 Then
        Local $iUpdate_Ask

        Local $sScript_Name = StringTrimRight(@ScriptName, 4) & ".exe"

        Local $iInetGet = InetGet($sUpdate_File, @TempDir & "\" & $sScript_Name)

        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, "Update check", "You are using the newest version of this software.", 0, $hGUI)
    Return 1
EndFunc


Бюджет: 500Р
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 123
Репутация
2 321
arabnesso [?]
Нужно сделать, чтобы этот скрипт обновлял не сам себя, а другую программу по наличии новой версии
Этот скрипт не для этого был написан. Нужно писать другой.
Каждая программа имеет свою специфику обновления, поэтому универсальную обновлялку не сделать.
 

CreatoR

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

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"Обновление" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Администратор.
 
Верх