Автор Тема: [Интернет] Автообновление программы в нормальном и скрытом (в фоне) режимах  (Прочитано 29136 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alex33 [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 1373
  • Репутация: 171
  • Пол: Мужской
    • alekssamos ВКонтакте
    • Награды
  • Версия AutoIt: 3.3.12.0
Belfigor,
Однозначно перехватят. Через FTP обновляться плохо. Лучше простой HTTP.
Да можно и через FTP, только сделать специально для этого доступ без пароля, например как это сделано у ftp://ftp.mozilla.org и у многих других проектов...

Русское сообщество AutoIt


Оффлайн Belfigor [?]

  • Локальный модератор
  • *
  • Сообщений: 3483
  • Репутация: 926
    • Награды
  • Версия AutoIt: 3.3.14.0
О! А это мысля, создать на хостинге директорию и пользователя с правами только для чтения.
Хотяяя... У меня же этот пользователь и пароль сгенерированы только для обновлений. Надо главное папке приоритет "только чтение" задать.

Любые темы внутри раздела "Разработка ботов" не названные в соответствии с правилами раздела, будут закрываться.
Любой ответ, любого пользователя в теме с предупреждением, направленный на решение вопроса, произведенный до того как предупреждение было исправлено, приведет к закрытию темы и удалению всего что было после предупреждения.

Оффлайн Malderin [?]

  • Новичок
  • *
  • Сообщений: 55
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
При попытке скачать Update.au3 перекидывает на страницу с надписью "Вы не можете войти в этот раздел". Я что то не так делаю?

Оффлайн ra4o [?]

  • Скриптер
  • ****
  • Сообщений: 745
  • Репутация: 131
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
это, наверное сверхсекретная UDF , тоже было несколько попыток скачать и всякий раз "Вы не можете войти в этот раздел" :'(

Русское сообщество AutoIt


Оффлайн Malderin [?]

  • Новичок
  • *
  • Сообщений: 55
  • Репутация: 1
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Кто ищет тот всегда найдет. И хоть Update.au3 я так скачать и не смог, но на рубоарде все таки выдернул то что искал. Скрипт настолько понравился, что я переделал его под локальную сеть и внедрил в некоторые свои рабочие проекты.
Кому нужно под локалку но переделывать лень (хотя что там  переделывать все итак почти готово к употреблению), вот:
Код: AutoIt [Выделить]
#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
 


Для этого примера я создал папку "Папка с обновлением" на диске D, туда поместил файл Update.inf следующего содержания:
[Info]
Update Version=1.1
Update File=D:\Папка с обновлением\Update 1.1.exe

Скомпилировал скрипт с параметром
Код: AutoIt [Выделить]
Global $sApp_Version = "1.1"

положил получмвшийся файл в папку "D:\Папка с обновлением\"

Далее скомпилировал скрипт с параметром
Код: AutoIt [Выделить]
Global $sApp_Version = "1.0"

Запихнул на рабочий стол, запустил и обновил его до версии 1.1.
« Последнее редактирование: Апрель 26, 2017, 08:38:44 от Malderin »

Оффлайн Sergio [?]

  • Новичок
  • *
  • Сообщений: 16
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
При попытке скачать :
Ошибка!
Вы не можете зайти в этот раздел

интересно для каких избранных этот раздел

Русское сообщество AutoIt


 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
2705 Просмотров
Последний ответ Февраль 02, 2011, 14:12:38
от muskat_59
8 Ответов
14345 Просмотров
Последний ответ Март 28, 2012, 13:59:22
от C2H5OH
4 Ответов
3028 Просмотров
Последний ответ Май 29, 2012, 22:37:28
от lirikmel
4 Ответов
2584 Просмотров
Последний ответ Июнь 15, 2012, 11:56:19
от zybaskin
3 Ответов
1535 Просмотров
Последний ответ Июль 19, 2014, 22:25:53
от CreatoR
7 Ответов
2801 Просмотров
Последний ответ Октябрь 15, 2015, 16:32:59
от Yashied
0 Ответов
759 Просмотров
Последний ответ Январь 24, 2017, 11:38:19
от nitsik
4 Ответов
596 Просмотров
Последний ответ Июнь 04, 2017, 18:47:30
от musicstashall
3 Ответов
657 Просмотров
Последний ответ Август 03, 2017, 17:30:23
от Marjel
0 Ответов
42 Просмотров
Последний ответ Февраль 20, 2018, 08:37:17
от 24itservice