crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> AutoUpdate программы., Как сделать самообновляемый бинарный файл?
grio
  опции профиля:
сообщение 28.1.2010, 18:46
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


Как сделать, что бы бинарь мог обновить сам себя?
Вернее записать другой бинарь поверх себя?
И потом перезапуститься.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 28.1.2010, 19:38
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(grio @ 28.1.2010, 22:31) *
Под вспомогательным процессом имеется ввиду запуск отдельного бинарного файла?
да, который запускается из твоего приложения, затем приложение завершается. Обновлялка копирует откуда-то на место твоего приложения новый файл, запускает его и после удачного запуска сама выгружается.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
gigabyte
  опции профиля:
сообщение 28.1.2010, 21:46
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 20
Регистрация: 9.8.2009
Пользователь №: 992

Спасибо сказали: 2 раз(а)




Репутация:   1  


1.Можеш посмотреть Mozilla Firefox там есть updater как отдельный файл. и ничего в нем страшного нет
2.Можеш извратится и написать более менее стабильное ядро в которое включить функцию автообновления т.е. закачка распаковка, а все интерфейсы, логику и т.д. и т.д. прилеплять к нему через библиотеки, потом для обновления их надо выгрузить обновить и загрузить обновленные
3.Еще больший изврат, обновлять через интсталятор, т.е. тотже NSIS или InnoSetup в каком-то из своих модулей поддерживают загрузку файлов через веб, для обновления можеш просто запускать его с определенным параметром.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
grio
  опции профиля:
сообщение 28.1.2010, 22:34
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 87
Регистрация: 11.11.2009
Пользователь №: 1221

Спасибо сказали: 6 раз(а)




Репутация:   0  


Цитата(gigabyte @ 28.1.2010, 21:46) *
1.Можеш посмотреть Mozilla Firefox там есть updater как отдельный файл. и ничего в нем страшного нет
[skipped]


К сожалению, Фокс разработан не на Qt.

У меня родилась идея как сделать самоапдейт под Винду.

1. Качаем новый бинарь (прогой), сохраняем под именем myprogram.new
2. Создаем и стартуем батник.
3. Выходим из программы.

-----update.bat-------
@echo off

rem Пятисекундная задержка (что бы прога успела завершиться)
ping www.grio.ru

rem Операции с бинарником (бекапим на всякий случай)
ren myprogram.exe myprogram.%RANDOM%.%DATE%.bak
copy myprogram.new myprogram.exe

rem Стартуем обновленную прогу (start нужен, что бы закрылось окно батника)
start myprogram.exe
------------------------

Для Пингвинов можно придумать нечто подобное.

Сообщение отредактировал grio - 28.1.2010, 22:40
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.12.2024, 12:27