Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2014, 13:48   #1
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию Исходник программы для установки обновлений

Добрый день. Есть программа, установленная у клиента. Появилась необходимость ее обновления через интернет. Может у кого есть простенький исходник программы обновления - с обычными функциями:

1. Скачать обновление
2. Автоматически запустить
3. Удалить и заменить исполнительный файл программы
4. Удалить / заменить папки / файлы программы

Буду рад примерам и исходникам, заранее спасибо.
Dux вне форума Ответить с цитированием
Старый 26.05.2014, 13:52   #2
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 977
По умолчанию

удаление самой себя. хотя можешь и переименование скаченного воткнуть
Код:
procedure Suicide;
var
 F: Textfile;
begin
 AssignFile(F,Changefileext(Paramstr(0),'.bat'));
 Rewrite(F);
 Writeln(F,':1');
 Writeln(F, Format('Erase "%s"',[Paramstr(0)]));
 Writeln(F, Format('If exist "%s" Goto 1',[Paramstr(0)]));
 Writeln(F, Format('Erase "%s"',[ChangeFileExt(Paramstr(0),'.bat')]));
 CloseFile(F);
 WinExec(PChar(ChangeFileExt(Paramstr(0),'.bat')),SW_HIDE);
 Halt;
end;
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Старый 26.05.2014, 15:12   #3
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Чтобы не заводить лишние программы, делал так:
1. Программа сама скачивает обновление - по требованию или по расписанию (по умолчанию - при запуске программы). Обновление сохраняется в подпапке \Update. Выводится сообщение: "Перезапустите программу для обновления". Ставится метка в ini
2. Программа при запуске проверяет метку в ini. Если там есть метка, то запускается копия из \Update, сама закрывается. Если метки нет - копия программы из \Update удаляется.
3. Программа проверяет: если она запустилась из подпапки \Update, то копирует себя в папку с программой. Убирается метка с ini. Запускает программу с обычного места и закрывается.

Все происходит до создания главной формы, отображается только сплэш окно.
superedward вне форума Ответить с цитированием
Старый 26.05.2014, 15:17   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

там сегодня декрет может какой вышел? а то темы сплошь про обновления пошли..
eval вне форума Ответить с цитированием
Старый 26.05.2014, 15:33   #5
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Спасибо за советы!!!

В основном интересует код реализации непосредственно скачивания. К примеру на сервере положил папку Update, в ней три новых файла: file1.exe, file2.ini, file3.dat

Какой наиболее корректный/надежный способ скачивания? Как сделать чтобы эти файлы шли сразу поверх старых?
Dux вне форума Ответить с цитированием
Старый 26.05.2014, 15:35   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Какой наиболее корректный/надежный способ скачивания?
у вас они все в распоряжении присутствуют?
eval вне форума Ответить с цитированием
Старый 26.05.2014, 15:54   #7
superedward
Форумчанин
 
Аватар для superedward
 
Регистрация: 27.11.2012
Сообщений: 190
По умолчанию

Цитата:
Сообщение от Dux Посмотреть сообщение
Спасибо за советы!!!

В основном интересует код реализации непосредственно скачивания. К примеру на сервере положил папку Update, в ней три новых файла: file1.exe, file2.ini, file3.dat

Какой наиболее корректный/надежный способ скачивания? Как сделать чтобы эти файлы шли сразу поверх старых?
1. Я сначала качаю файл (у него постоянное имя), где хранится список архивов для скачивания в зависимости от текущей у клиента версии и актуальной версии
2. Затем качаю архивы в определённую папку и раззиповываю
3. В архиве файл (с постоянным именем), по которому программа понимает какой файл куда скопировать. Всё это копируется. Алгоритм обновления самого ехе-шника писал выше
superedward вне форума Ответить с цитированием
Старый 26.05.2014, 16:48   #8
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Да в теории ясно, нужен пример реализации.

Как происходит само скачивание? С использованием idHTTP1.Get? или есть другие варианты?
Dux вне форума Ответить с цитированием
Старый 26.05.2014, 16:57   #9
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

есть
idFTP
idTCP...
хватит или еще накидать, а то я могу еще пару сотен подкинуть
eval вне форума Ответить с цитированием
Старый 26.05.2014, 16:59   #10
Dux
Delphi Master
Форумчанин Подтвердите свой е-майл
 
Аватар для Dux
 
Регистрация: 31.03.2008
Сообщений: 803
По умолчанию

Цитата:
Сообщение от eval Посмотреть сообщение
есть
idFTP
idTCP[]
хватит или еще накидать, а то я могу еще пару сотен подкинуть
Eval, спасибо, наконец-то подбираемся к сути . В этом то и вопрос - какой наиболее распространенный / надежный / удобный вариант?

Вы бы сами какому предпочтение отдали бы?
Dux вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исходник моей программы для сброса пороля написанная на C++ НикИсходник Помощь студентам 2 07.04.2014 20:14
Исходник программы для тестирования Djleito Софт 7 18.12.2012 20:04
Не могу найти исходник программы (которая требует логин и пароль для доступа) makar3000 Софт 0 01.12.2011 16:37
Не могу найти исходник программы (которая требует логин и пароль для доступа) makar3000 БД в Delphi 1 01.12.2011 03:11
какие есть программы для автоматической установки компонентов TotKtoNado Компоненты Delphi 4 13.02.2011 19:36