Вверх ↑
Ответов: 321
Рейтинг: 10
#1: 2018-03-26 22:19:13 ЛС | профиль | цитата
RAWY_EX, спасибо громадное за варианты и за подсказки, очень было интересно почитать!
Netspirit писал(а):
В папке примеров в архиве компонента пример "Скачивание файлов.sha".

Да я помню, что было, просто обновление было насколько знаю компонента, думал может порезали.
ContentLength - думал что-то типа длины строк ответа, не думал, что учитывает поток-данных, ну тут заблуждение мое короче виновато

Netspirit писал(а):
Проще написать PHP-скрипт, который будет перебирать каталог с файлами обновления и выдавать имя+дату изменения(+куда сохранять у клиента). Обновлятор получает список файлов и даты, сравнивает со своими. Если отличаются - скачивает файл, сохраняет и проставляет дату сохраненного файла согласно полученной с сервера.

Ну в этом и вся соль, что вся программа это один .exe файл. Это не какой-то глобальный updater
Иными словами самообновление требуется. Не думаю что кто-то для экранной лупы какой-нибудь делает updater, у меня очень простая программка для работы с базой данных. Но программка рассчитана на очень большое кол-во пользователей. И требуется в случае чего, заставить их обновится, например при переезде на другой хостинг и т.д. ;)

Netspirit писал(а):
А можно извернуться - если файл занят, размещать новый файл возле него под другим именем. Программа перед стартом проверяет наличие этого другого файла, если есть - запускает его, а сама закрывается; этот другой файл в свою очередь при запуске копирует себя на место оригинальной программы.

Изначально так и планировалось, но показалось, что .bat лучше ввиду того, что...
taskkill /f /im %1 - убиваем процесс основной программы.
del /q %1 - удаляем файл основной программы.
ren latest_version.exe %1 - переименовываем скаченную новую версию на имя старой.
del %0 ›nul - самоудаляем .bat файл.
К этому можно добавить строчку для запуска (start name.exe) уже нового экземпляра с новым именем и готового к работе.
То есть скачалось, md5 совпадает и все, выполняем .bat и получается с этой строчкой, как будто программа просто перезапустилась.
карма: 1

0
Редактировалось 2 раз(а), последний 2018-03-26 22:28:26