![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Unconnected |
![]()
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: ![]() ![]() ![]() |
Привет всем.
Делаю механизм самообновления для проги, может ли exe скачивать обнову и на лету себя ею перезаписывать? Качаю в TMemoryStream. Делал с сохранением обновления на диск, замещением и т.д., но это не очень стабильно работало. Сообщение отредактировано: Unconnected - 7.05.2011 13:25 -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
IUnknown |
![]()
Сообщение
#2
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
А нет. Только что попробовал еще один способ - работает. Итак: есть основная программа, и программа-обновлялка. Нет, я не предлагаю при запуске проверять, есть ли обновления, и если есть - то вытягивать. Все проще: проверяет твоя программа, которая загружена и работает.
А вот когда она обнаружила, что обновление есть, и его надо качать - она запускает обновлялку. Та сама, в автономном режиме, скачивает обновление, и как только скачала - дает сигнал основной программе, "неплохо бы завершиться" (реализация этого взаимодействия может быть любой. Я сделал так, что при запуске обновлялки ей параметром передается Handle главного окна приложения, на который потом и отсылается WM_CLOSE. Тут все зависит от твоей фантазии). Основная программа завершается (корректно, без спешки, чтоб не убивать потоки, а завершить как положено), возможно - перед закрытием основного потока дает сигнал обновлялке, возможно - просто обновлялка ждет какое-то время, убирает старый EXE-шник, подменяет его новым и запускает его. После чего ее функция закончена - она может самоликвидироваться. Я надеюсь, как сделать, чтоб EXE-файл после завершения работы самоудалился - знаешь? У Рихтера есть рецепт. Да, да, я знаю, какой вопрос ты сейчас задашь... (Показать/Скрыть)
|
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 16:49 |