Обновление своей программы

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Обновление своей программы

Сообщение mrkaban » 28.05.2016 09:55:47

Здравствуйте! Заранее прошу прощения за множество глупых вопросов! Я только начинаю изучать лазарус!

Помогите пожалуйста придумать код для проверки обновлений программы на сайте. Думаю сделать по нажатию на один из пунктов меню, будет проверяться наличие файла на сайте, например со следующей версией, вообще пытался реализовать проверку, мол в версии 1.1 будет искать на сайте файл версии 1.2. Понимаю, что глупо, но пытался хоть как то сделать.

Вполне пойдет уведомление, мол есть новая версия и скачать можно тут, и отправить на страницу программы.

Находил даже парочку готовых модулей обновления, но ничего не вышло. То, что сам пытался написать не буду даже показывать)) ибо это вообще бред сумасшедшего.

Помогите пожалуйста! Заранее благодарен!
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18

Re: Обновление своей программы

Сообщение Лекс Айрин » 28.05.2016 10:27:13

mrkaban писал(а):мол в версии 1.1 будет искать на сайте файл версии 1.2.


а потом человек пропустит обновление (инета нет, не видел смысла) и обновление не пройдет. лучше уж вводить проверку на версию большую текущей не привязываясь конкретно к номеру. А вообще, можно на сайте ввести понятие текущей сборки. номер сборки либо зашить в название файла, либо в отдельный файл.

mrkaban писал(а):Вполне пойдет уведомление, мол есть новая версия и скачать можно тут, и отправить на страницу программы.


если уж есть доступ, то легко и скачать.

mrkaban писал(а):То, что сам пытался написать не буду даже показывать)) ибо это вообще бред сумасшедшего.


возможно, и не бред.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Обновление своей программы

Сообщение mrkaban » 28.05.2016 10:32:27

Думаю Вы правы. Помогите пожалуйста реализовать какой нибудь вариант, а то у меня вообще ничего не получилось нормального.
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18

Re: Обновление своей программы

Сообщение resident » 28.05.2016 10:49:33

mrkaban писал(а):Находил даже парочку готовых модулей обновления, но ничего не вышло.

Каких? Ссылки? Ваш код, как вы прикручивали эти модули?

mrkaban писал(а): То, что сам пытался написать не буду даже показывать))

mrkaban писал(а):ничего не получилось нормального

Да уж покажите, может там всего пару строк подкрутить до идеала.

mrkaban писал(а):ибо это вообще бред сумасшедшего

Кто видел исконный код Фейсбука за голову хватались. А теперь вот поди - Цукерберг миллиардер.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Обновление своей программы

Сообщение pupsik » 28.05.2016 10:58:59

mrkaban есть готовые компоненты по обновлению, модули по проверке версии программы (в т.ч. обновление). Найти всё это не составляет труда.
Кто видел исконный код Фейсбука за голову хватались. А теперь вот поди - Цукерберг миллиардер.
- у него идея заработала, а не код...
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

Re: Обновление своей программы

Сообщение Лекс Айрин » 28.05.2016 11:03:39

Если честно, то я об этом пока вообще не думал((( выложите хоть один свой вариант и посмотрим, возможно его удастся привести в нормальный вид.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Обновление своей программы

Сообщение Ichthyander » 28.05.2016 11:42:20

Можно так сделать: проверка номера версии программы с текущей версией. Версия сборки программы берется из версии файла, версия текущей сборки со своего сайта. К примеру, определенный файл, можно просто ini file с таким кусочкем текста
Код: Выделить всё
[Current]
Version=1.1.1.100

То есть[, например,] при запуске программа закачивает текстовый файл по ссылке http://official-site-of-the-software.ru/info/status.ini, откуда уже считывается информация о последнем релизе/сборке.
Ну а дальше, если есть желание можно реализовать скачивание файла по ссылке. Можно ее даже сделать одинаковой http://official-site-of-the-software.ru/download/your-soft.exe . Это подойдет, если не страшно, что утечет ссылка на программу(, к примеру, она бесплатная).
В случае платной программы надо усложнить процесс скачивания. Алгоритм проверки же текущей версии останется тот же.
Не знал о существовании готовых библиотек/компонент для этого дела. Можете скинуть ссылки?
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 698
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Обновление своей программы

Сообщение mrkaban » 28.05.2016 11:50:35

Ichthyander писал(а):Можно так сделать: проверка номера версии программы с текущей версией. Версия сборки программы берется из версии файла, версия текущей сборки со своего сайта. К примеру, определенный файл, можно просто ini file с таким кусочкем текста
Код: Выделить всё
[Current]
Version=1.1.1.100

То есть[, например,] при запуске программа закачивает текстовый файл по ссылке http://official-site-of-the-software.ru/info/status.ini, откуда уже считывается информация о последнем релизе/сборке.
Ну а дальше, если есть желание можно реализовать скачивание файла по ссылке. Можно ее даже сделать одинаковой http://official-site-of-the-software.ru ... r-soft.exe . Это подойдет, если не страшно, что утечет ссылка на программу(, к примеру, она бесплатная).
В случае платной программы надо усложнить процесс скачивания. Алгоритм проверки же текущей версии останется тот же.
Не знал о существовании готовых библиотек/компонент для этого дела. Можете скинуть ссылки?


http://xn--90abhbolvbbfgb9aje4m.xn--p1a ... Lpro11.exe

Ini файл где то через полчаса создам, по такому же адресу можно выложить. Вы скажите что туда написать помимо версии, назвать например update.ini?
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18

Re: Обновление своей программы

Сообщение Лекс Айрин » 28.05.2016 11:59:34

mrkaban писал(а):Вы скажите что туда написать помимо версии, назвать например update.ini?


Например, стандартные настройки программы. тогда, в случае чего, можно будет восстановить их.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Обновление своей программы

Сообщение resident » 28.05.2016 12:15:08

mrkaban писал(а):что туда написать помимо версии

Ну вы блин даете, список причин для обновления. Может пользователю ваше обновление и не нужно вовсе. Допустим у пользователя версия 3. В файле будет список: 2. Обновил кнопку, 3. Исправил расчет, 4. Добавли схему, 5. Перевел на английский. Программа скачивает файл и смотрит: Я = 2-ая версия, значит покажем пользователю все причины, начиная с 3-ей. И выводит "а не хотители поиметь фишки новых версий?: 3. Исправленный расчет, 4. Новую схему и т.д.".
mrkaban писал(а):назвать например update.ini?

Хоспадя, да какая разница? Имя файла будет известно только вам. :)

Лекс Айрин писал(а):Например, стандартные настройки программы. тогда, в случае чего, можно будет восстановить их.

А почему не хранить стандартные настройки в папке программы у пользователя? Загружать их каждый раз при проверке обновления? Лишний трафик, да и вобще как-то нелогично. Смешивание сути - обновление и восстановление. Тогда уж еще один файл под это дело закачать. Опять же разные версии - разные настройки. В чем тайный смысл?
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Обновление своей программы

Сообщение Лекс Айрин » 28.05.2016 12:24:17

resident писал(а):А почему не хранить стандартные настройки в папке программы у пользователя?


они там и будут. Это тогда будет лишь метод восстановления работоспособности проги. Хотя, конечно, проще снести файл настроек и развернуть его из самой проги. Так что соглашусь.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Обновление своей программы

Сообщение Ichthyander » 28.05.2016 12:38:30

Интересней также в этом файле будет хранить прочую динамическую информацию. К примеру, рекламный текст или текст объявлений (акции, пормо), который будут видеть пользователи при запуске программы. Также можно хранить информацию о релизе. К примеру, ньюансы по обновления программы. Тут уж как говорится на что фантазии хватит
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 698
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Обновление своей программы

Сообщение mrkaban » 28.05.2016 12:53:57

Код: Выделить всё
var
version:WideString;
f:string;
begin
   try
    f:= '1.0.0.0';
    version:=IdHTTP1.Get('http://xn--90abhbolvbbfgb9aje4m.xn--p1ai/images/Lpro-updates.ini');
    if version=f then
     begin
      Application.MessageBox('У Вас самая новая версия программы','Внимание',MB_OK);
     end
    else
     begin
      Application.MessageBox('Появилась новая версия программы, ее можно скачать'+#13#10+'http://xn--90abhbolvbbfgb9aje4m.xn--p1ai/images/Lpro.exe','Внимание',MB_OK);
     end;
   except
    on e:Exception do
     //-//-//-//-//-//
   end; 


Но он ругается:
main.pas(132,14) Error: Identifier not found "IdHTTP1"
mrkaban
новенький
 
Сообщения: 55
Зарегистрирован: 28.05.2016 09:48:18

Re: Обновление своей программы

Сообщение Ichthyander » 28.05.2016 13:06:24

Я не знаю, что у Вас за IdHTTP1 - я использую synapse. Это во-первых. Во-вторых: Вы, видимо совсем новичок. Что Вы этим хотели получить? version=f? Почитайте как работать с ini файлами в Delphi/Lazarus. Или не замарачиваейтесь, а вместо Lpro-updates.ini используйте Lpro-updates.txt, единственным содержимым которого сделайте версию текущей сборки. То есть 1.1.1.1 без каких-либо разметок. Тогда текст этого файла и будет версией файла. Но опять-таки и тут будет неправильным использовать строку напрямую. Вам нужно не просто проверить равны ли строки (кстати тогда Вам нужно использовать SameString(S1, S2) для сравнения), но желательно перевести в числовой формат, к примеру, набор байт XX.XX.XX.XX, чтобы выполнить более полноценное сравнение.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 698
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Обновление своей программы

Сообщение Лекс Айрин » 28.05.2016 13:09:55

mrkaban
А можно посмотреть список подключенных модулей? Ну и не помешало бы посмотреть на определение IdHTTP1
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 259

Рейтинг@Mail.ru
cron