| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > автомотическое обновлений программы |
| Автор: Плаха 30.5.2005, 18:26 |
| Подскажите, как можно реализовать автомотическое обновлений программы. Может быт есть какой нибуть готовый модуль или плагин. |
| Автор: Pakshin A. S. 30.5.2005, 19:03 |
| Это что тебе конкретно нужно? Через нет? Лично я могу расписать способ "сделай сам" (т. е. без компонентов через прямое обращение к файлам).... |
| Автор: Плаха 31.5.2005, 10:22 |
| распиши если не трудно. |
| Автор: Akella 31.5.2005, 10:56 |
| мне кажется, что нужно львиную долю кода писать в Dll и уже из программы качать новую Dll, выгружать старую, проверять новую, и загружать новую. |
| Автор: mvdr 31.5.2005, 12:59 |
| можно сделать файл, в котором хранить инфу типа даты программы, ее номера, или названия всех файлов, используемых в программе. при записи подобной программы (новой) сравнивать 2 файла (которые содержат такую инфу), в результате, если новая программа является новее, то производить перезаписывание. можно поподробнее описать, если заинтересует |
| Автор: Плаха 31.5.2005, 13:16 |
| Понятно. Спасибо. Буду пробовать |
| Автор: Snowy 31.5.2005, 14:37 | ||
Так тебе через инет нужно или как? Программа должна обновлять саму себя или, как у антивирусов - программа обновления отдельно? |
| Автор: mvdr 31.5.2005, 14:50 |
| если что, я могу более подробно рассказать, нежели написал |
| Автор: z-END 31.5.2005, 15:04 | ||
Versioninfo еще никто не отменял обновление - чаще всего новый дистрибутив приложения целиком или только с обновленными элементами (плагнины, внешние ресурсы и т.п) патчи - програмки которые содержат в себе данные о разнице кода в оригинальном приложении и в обновленном, и при запуске меняют ту часть файла которая была модифицирована |
| Автор: mvdr 31.5.2005, 15:07 |
| z-END, я не для сервера, а для случая без него. |
| Автор: z-END 31.5.2005, 15:17 |
| Femida а откуда тогда обновление? (тем более автоматическое) моя не понимать |
| Автор: Snowy 31.5.2005, 15:36 | ||
|
| Автор: mvdr 31.5.2005, 16:29 |
| z-END, есть программа. потом автор выпускает новую, ты скачиваешь ее. и ставишь себе - и вот тебе и проверка |
| Автор: z-END 31.5.2005, 16:38 |
| Femida какая проверка?! версии приложений как раз для этого и существуют чтобы юзеры (ламеры и прочие) могли понять где что новее ЗЫ и в каком-же месте тогда здесь "автоматическое обновление" ? юзер автоматически при выходе в инет делает-чтоли? |
| Автор: mvdr 31.5.2005, 17:03 |
| z-END, ладно, но номер ничего не говорит. Допутим: СуперЛамер выбирает ОС. Он видит: 95, 98, 2000, потом идет Me,XP .Откуда ему знать, что ХР это самая последняя из представленных? У него стоит ХР, Он ставит Винду 2000, а ему и говорят: что ваша 0С новее |
| Автор: z-END 31.5.2005, 17:08 |
| Femida открою тебе секрет, что даже у виндовс ХП есть версия, и она выше чем у 95, 98, 2000, МЕ, щелкни правой мышкой на "мой компутер" и выбери свойства и посмотри вкладку "общие" Добавлено @ 17:09 Но вообще согласен, ситауцая такая возможна.. но по одной причине - нерадивые разработчики софта |
| Автор: mvdr 31.5.2005, 17:13 |
| Это не секрет ведь драйвера оповещают каким то образом?! (но некоторые, сволочи нет) |
| Автор: Snowy 31.5.2005, 17:38 | ||
| Вот, нарисовал процедурку обновления с инета. Для ее работы требуется, чтобы было подключение к инету. Хотя... И без него не должно сглючить.
P.S. Сам не проверял, но работать должно. P.P.S. Вопрос с прокси решайте уже сами. P.P.P.S. Почему дату храню в отдельном файле? А потому, что мне нужно хранить ее в том же виде, какой выдает сервер. А разные сервера оформляют строку по разному. |
| Автор: Гость_Юра 31.5.2005, 18:36 |
| Вот еще вопрос, может конечно не в тему(тогда сории Например я сделал прогу версии 1.2.0 в ней оказался большой глюк(например "if ... then" забыл поставить коегде) и я быстро сделел версию 1.2.1 без глюка. И выложил новую версию. Но exe'шник моей проги весть 2,5 mb и юзеру качать каждый раз 2,5 метра просто влом(или дорого). Как бы сделать такую маленькую прожку(патч) которая бы "превращала" прогу версии 1.2.0 в 1.2.1. |
| Автор: z-END 31.5.2005, 18:44 |
| в JEDI есть для этого компонет. или пиши сам, смысл патча я писал выше |
| Автор: Гость_Юра 31.5.2005, 19:02 |
| Подкить пример использования Джедаевскоко(JEDI) компонента, а то я сёдня туплю. |
| Автор: Snowy 1.6.2005, 09:22 |
| У Кладова есть утилитка, которая делает маленький патч. Как раз для таких целей, когда поменялся не байтик в коде, а сменилась версия.. Если сходить на страницу KOL (http://bonanzas.rinet.ru/) , там найдешь. (http://bonanzas.rinet.ru/updater.zip - GUI версия) (http://bonanzas.rinet.ru/CUpdater.zip - консольная версия) |
| Автор: Неназываемый 2.6.2005, 18:25 |
| А я просто дистрибутив сделал с BPL а обновляется ASPack'нутый сжатый экзешник. У меня 40 кб. Я думаю это не много даже для диал аперов. |
| Автор: MacTep 8.2.2007, 11:49 | ||
Snowy, можно небольшое пояснение по твоему коду??? Что-то не догоняю, что здесь и к чему?
|
| Автор: Rodman 8.2.2007, 11:54 | ||
|
| Автор: MacTep 8.2.2007, 12:02 |
| Rodman, спасибо, сейчас попробую. |
| Автор: Snowy 8.2.2007, 12:13 |
| А куда оно денется. Проверено не один десяток раз |
| Автор: Rodman 8.2.2007, 12:16 |
| я тоже его когда то реализовал... по этому примеру. |
| Автор: MacTep 8.2.2007, 12:46 |
| Странно, но не работает. Как будто исходный файл просто не удаляется... Не понимаю, что такое... Добавлено @ 12:50 Извините, работает. И странно так: не работает удаление новой версии файла... странно... она же в конце удалиться должна.... как реализовать - не понятно... |
| Автор: Snowy 8.2.2007, 13:04 | ||
|
| Автор: MacTep 8.2.2007, 13:18 |
| С этим кодом заработала замена файла новым. Но две проблемы так и остались: не удаляется батник, не удаляется обновление. ... |
| Автор: Snowy 8.2.2007, 13:44 | ||
| Ну так сам удали. Программа же перезапускается. Вот и приберись за собой Можно также добавить
|
| Автор: MacTep 8.2.2007, 13:53 |
| Все, вопрос решен. Rodman & Snowy - всем по +1. |
| Автор: dumb 8.2.2007, 13:54 | ||
чтобы удалялся батник, перезапускать возможно нужно так:
|
| Автор: MacTep 8.2.2007, 14:35 |
| Что делать, если батник выдает кучу ошибок вида "Отказано в доступе" после каждой попытки удалить exe файл? Есть такая строка: D:\6\interstol>del D:\6\interstol\InterStol.exe 1>nul Что здесь обозначает 1>nul? |
| Автор: Snowy 8.2.2007, 14:43 |
| >nul означает, что мы не хотим видеть сообщений. Да и ничего страшного - окно-то скрыто |