Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление программы через интернет 
:(
    Опции темы
Tamerlaan
Дата 29.8.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.8.2007

Репутация: нет
Всего: нет



Почитал тут http://excode.ru/art1800p1.html статью, хочу написать обновление для программы, но есть пару вопросов:
1.А если изменений нет в программе, то как это проверить?
2.Как организовать прогресс обновления и скорость скачивания?
3.Как организовать список скачаных файлов?(т.е. мне нужно, чтобы юзверь видел с какой версии и до какой обновился файл, сейчас у меня в программе 1 exe и 1 dll и папки с файлами для проги, желательно, чтобы файлы тоже обновлялись, файлы лежат в подпапках, мне нужно, чтобы юзверь видел ход обновления, скорость и версии файлов считывал и юзверю сообщал, какие были старые, а какие они стали в компоненте отдельном)
4.Также вопрос, как организовать, чтоб можно было создать резервную копию программы и восстановить её оттуда

Помогите, плиз. Спасибо.

Добавлено через 10 минут и 4 секунды
Посмотрел программу DRKB. Вот там есть модуль обновления, примерно такой я и планировал сделать. Помогите пожалуйста
PM MAIL   Вверх
Alexeis
Дата 29.8.2007, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



1) Сначала читать с сайта версию программы и сверять с текущей версией.
2) Делфийские компоненты сами генерят события прогресса, нужно только установить обработчик и в нем  изменять значения прогрессбара.
3) Обойти дерево каталогов программы и составить список файлов. Кроме того на сервере можно хрнить список файлов которые изменились в каждой новой версии.
4) Сделать отдельный каталог и сопировать туда себя и все свои файлы. Аналогично при восстановлении скопировать себя обратно, только это должна делать не сама программа, а дополнительная програмка для обновления или скрипт в файле типа cmd или bat.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Tamerlaan
Дата 29.8.2007, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.8.2007

Репутация: нет
Всего: нет



Может сделать программу для сервера и клиента и с помощью их проверять?Опишите плиз поподробнее

Добавлено через 3 минуты и 54 секунды
Если можно - напишите плиз на ICQ 253186806
PM MAIL   Вверх
lukas
Дата 29.8.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Tamerlaan, 

видишь там цикл Repeat вот туда и прикручивай процесс скачивания... предварительно затащив в отдельный процесс..


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
Alexeis
Дата 29.8.2007, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



А на сервере зачем программа? На сервере достаточно разместить маленький файлик типа Version_Info.txt скачать его и получить информацию о обновленных файлах.

Добавлено через 2 минуты и 11 секунд
lukas, этого уже давно не требуется. Компоненты Indy сами работают с потоками если их настроить, потому не нужно самому ничего создавать и сами оповещают о прогрессе.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Tamerlaan
Дата 29.8.2007, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.8.2007

Репутация: нет
Всего: нет



Я с файлами почти не работал, я только с БД и ИнтерБэйс, сеть и файлы для меня новое - может подскажете справку или ещё что-нибудь?
PM MAIL   Вверх
Tamerlaan
Дата 29.8.2007, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 29.8.2007

Репутация: нет
Всего: нет



Я сделал организацию скачивания файлов, но как добавить остальное(прогресс и т.п.) ненаю, плиз помогите, просто срочно нужно
PM MAIL   Вверх
Lence
Дата 29.8.2007, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чухарадземадзупэ
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 9.5.2006
Где: Ташкент

Репутация: 3
Всего: 3



Самый простой тебе способ. Берешь все свои обновления - пакуешь в архив/лепишь новый инстал/ итд. Но все в одном файле. Бросаешь этот файл на сайте. Делаешь страничку update.html где ты пишешь 
Код

ver:1.0.0.1<br>
link:http://www.yuorurl.com/Name_New_Program.rar

и пишешь код ... 
че он делает - лезит на старицу update.html, вырезает в переменные линк и версию... версию тупо ставрнивает со стрингом и если не равны - значит вызывается шелэкзекут и тянется сам файл. Пользователь же сам сохраняет его где ем нада ... исталирует/распаквывает поверх старой. 

Код

procedure TForm1.getUpdate(Sender: TObject);
var
  http1: TIdHttp;
  s, q2, q1: string;

begin
    http1:=TIdHTTP.Create(sefl);
    try
      s:= HTTP1.Get('http://youurl.com/update.html'); // твой HTML где у тебя написана новая верси и ссылка на новый файл
     q1:= Copy (s, Pos ('ver:', s)+4, Pos('<br>', s)+4); // вырезаешь строку от ver: и до конца
     q1:= Copy (q1, 1, Pos('<br>', q1)-1);             // вырезаешь только версию
     q2:=  Copy (s, Pos ('link:', s) + 5, 250);  // вырезаешь link
     if '1.0.0.0' <> q1 then // тут проверяешь 
          begin
               ShellExecute(0, nil,pchar(q2),nil,nil,1);  //если не равны то отрываешь ссылку - и браузер  тебя сам спросит - качать или нет
          end;
    end;
   except
   end;
end;


--------------------
Шуруп, забитый молотком, крепче сидит чем гвоздь, закрученный отверткой ....  
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0585 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.