Последние записи
- TChromium (CEF3), сохранение изображений
- Как в Delphi XE обнулить таймер?
- Изменить цвет шрифта TextBox на форме
- Ресайз PNG без потери прозрачности
- Вывод на печать графического файла
- Взаимодействие через командную строку
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
28th
Фев
Удаление старой версии программы после обновления
Posted by Chas under Delphi
сем доброго, столкнулся с проблемой одной, сделал софт и сделал там авто обновление после чего он обновляет и все норм а вот как удалить старую версию? И например вывести иконку на рабочий стол новой версии?
Что надо делать в первой версии программы или во второй что то надо? Как я понял можно же во второй уже прописать чтоб она удалила старый EXE? И как вывести иконку на рабочий стол не знаю….. что читать? есть статьи?
_SERGEYX_
Способов много… можно все сделать через bat-файл. Но я в больших программах делал так:
1. Пишу файл Updater.exe и бросаю в папку с программой.
2. На сайте есть текстовый файл с номером версии. Читаю из программы этот файл и если номер версии больше текущей предлагаю обновиться.
3. Программа скачивает zip-архив с обновлением и в случае удачного завершения (в идеале нужно в тот текстовый файл записать второй строкой хеш по md5, потом просчитать хеш скачанного файла и сравнить) программа пишет «Для продолжения программа будет перезапущена > Да> Нет».
4. При стандартном закрытии программа предлагает сохранить данные и т.п. (Просто убивать процесс не стоит. Некрасиво это как-то, по-ламерски). Итак, программа запускает файл Updater.exe и закрывает сама себя.
5. Updater.exe распаковывает архив с обновлениями с заменой файлов и делает прочие действия, например, выполняет скрипты на базу данных, если ее структура была изменена и пр. По сути Updater.exe — это и есть мой собственный инсталлятор, которым можно вносить изменения в реестр, отправлять софтину в автозагрузку и так далее. В отличие от чужих инсталляторов его возможности будут ограничены только вашей фантазией. Интерфейс тоже (!!!).
6. Далее Updater.exe удаляет архив с обновлением, запускает саму программу и закрывает сам себя.
7. Ну, и конечно, от всей души благодарит пользователя за использование Вашей программы
Работы, конечно, больше, но зато все получается красиво и эффектно.
raxp
…для себя делал батником по-простому:
REM Update.bat
REM Батник обновления программы из Интернета
REM
REM При запуске:
REM 1. Создается временная директория для закачки свежей версии программы в архиве
REM 2. Производится скачивание архива (обновления) по заданному адресу
REM 3. Архив распаковывается во временную директорию
REM 4. В процессах ищется запущенная версия "старой" программы и убивается
REM 5. Из временной директории в текущую перемещается "новая" версия программы
REM 6. Временная директория удаляется с автоподтверждением
REM 7. Прозводится запуск обновленной версии программы
REM
REM Разработчик: Бадло Сергей Григорьевич
REM H-page: http://raxp.radioliga.com
REM Ограничения: Win OS + запуск батника самой программой, которая хочет себя обновить
@echo off
REM В реальном приложении убрать этот первый запуск старой программы
echo Test run old program...
start raxp_sockets.exe
mkdir update
echo Downloading Update...
httpget http://raxp.radioliga.com/update/update.zip update\update.zip
echo Unpacking update.zip...
unzip -o update\update.zip -d update
echo Kill old program...
set ProcessName="raxp_sockets.exe"
TaskList /FI "ImageName EQ %ProcessName%" | Find /I %ProcessName%
REM Задержка через пинг, в реальном убрать (введена для видеоролика)
ping 0 -n 7
taskkill /f /im %ProcessName%
echo Moving New to Old...
move /Y update\raxp_sockets.exe
echo Delete Update Directory...
rmdir update /S /Q
echo Run New program...
start raxp_sockets.exe
http://www.youtube.com/watch?v=e99rvyv-T0o
raxp_Скрипт (батник) обновления программы из Интернета.zip (422.0 Кб) |
Похожие статьи
Купить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)