Автор Тема: [Автоматизация] Автообновление программы по сети с сервера по Http  (Прочитано 353 раз)

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

Оффлайн 24itservice [?]

  • Новичок
  • *
  • Сообщений: 6
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Версия AutoIt: Любая 3.

Описание:
Требуется автоматическое обновление файлов исполняемой программы с сервера по http и автоматический уход на новый цикл в случае отсутствующего подключения к серверу.
Порядок действия:
1 ) Интервал выполнения 5 минут
2 ) Подключение к серверной машине
3 ) Скачивание контрольного файла в формате .txt
4) Сравнение файлов:
4.1 ) В случае совпадения новый цикл
4.2 ) В случае несоответствия скачивание файлов с новой версией и замена образца контрольного файла на машине
5 ) Команда на завершение работы программы и проверка завершен ли процесс
6 ) Удаление старых файлов
7 ) Замещение на новые файлы из скачанных с репозитория
8 ) Запуск программы
9 ) Уход на новый цикл


Примечания: Пробовал склепать свой вариант,но там и не смог справится с правильным подходом по циклу =( Если кому не сложно помочь буду чертовски рад готовому коду

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


Оффлайн hedji [?]

  • Осваивающий
  • **
  • Сообщений: 274
  • Репутация: 43
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
#include <Crypt.au3>
While 1
    InetGet() ;скачиваем контрольный txt
    $old_file_hash = _Crypt_HashFile("путь к старому контрольному файлу", $CALG_SHA1) ;вычисляем хэши контрольных файлов
    $new_file_hash = _Crypt_HashFile("путь к новому контрольному файлу", $CALG_SHA1)
    If $old_file_hash<>$new_file_hash Then ;если файлы не одинаковые
        FileMove ("путь к новому контрольному файлу", "путь к старому контрольному файлу", 1) ;заменяем старый контрольный файл новым
        InetGet() ;скачиваем новые файлы обновляемого ПО, при необходимости разархивируем и пр.
        While ProcessExists() ;пока процесс существует
            ProcessClose() ;пытаемся его закрыть
            Sleep(10000)
        WEnd
        DirRemove() ;удаляем старую папку с ПО
        DirMove() ;копируем скачанную папку с новыми файлами ПО на место старой
        Run() ;запускаем ПО
    EndIf
    Sleep(300000) ;ждем 5 минут
WEnd
 


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


 

Похожие темы

  Тема / Автор Ответов Последний ответ
35 Ответов
30707 Просмотров
Последний ответ Ноябрь 15, 2017, 16:51:03
от Sergio
0 Ответов
2248 Просмотров
Последний ответ Май 17, 2012, 22:48:35
от madmasles
4 Ответов
2686 Просмотров
Последний ответ Июнь 15, 2012, 11:56:19
от zybaskin
8 Ответов
3414 Просмотров
Последний ответ Октябрь 20, 2013, 19:30:45
от firex
2 Ответов
2241 Просмотров
Последний ответ Октябрь 19, 2013, 18:53:33
от inververs
3 Ответов
1635 Просмотров
Последний ответ Июль 19, 2014, 22:25:53
от CreatoR
2 Ответов
1470 Просмотров
Последний ответ Июль 31, 2014, 21:56:42
от Olim98
0 Ответов
820 Просмотров
Последний ответ Март 19, 2015, 14:13:30
от kilohel
4 Ответов
2662 Просмотров
Последний ответ Январь 24, 2016, 07:48:27
от alex33
1 Ответов
1014 Просмотров
Последний ответ Октябрь 15, 2017, 00:41:09
от Garrett