Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];




Вниз

Как подменить exe-шник из него самого? 


Сержик   (2002-01-18 09:48) [0]

Есть прога, которая должна сама себя обновлять. (Запустил её, кнопочку нажал, она: "вставьте дискету", на диске новая версия этой же проги, которая должна заменить старую.)
Как сделать, чтобы юзер сам файлы не гонял?



Digitman   (2002-01-18 09:59) [1]

1. Используй одноэкземплярное приложение.
2. Данные, требующие модификации, храни в DLL, используемой только твоим приложением.
3. Для обновления DLL выгрузи ее из памяти и обнови файл библ-ки



Andrey   (2002-01-18 10:59) [2]

1. Копируеш приложение (*.EXE, *.DLL, etc) с дискеты во временный каталог.
2. Из своего приложения создаешь BAT-файл который должен выполнить удаление твоего приложения из основной директории как только его позволит удалить система, копирование из временной директории в основную директорию и запуск твоего приложения.
3. Запускаешь BAT-файл.
4. Завершаешь приложени (система отпускает все файлы твоего приложения) а дальше дело BAT-файла.

Вроде все.

P.S. Перед применением лучше хорошенько отладить (а то вдруг у кого-то батник на середине свалится, получится ни новой ни старой версии приложения у пользователя не останется).

P.P.S. Хотя лучше изначально использовать архитектуру приложения предложеную Digitman-ом.



Builder   (2002-01-18 13:12) [3]

2 Andrey © ? 2 All
По поводу пунка 2 - посмотрите в факе - там обсуждалась тема, как удалять свой же екзешник.



Andrey   (2002-01-18 13:22) [4]

> Builder
Сначала я хотел привести ссылку, но просто ненашел ее.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.022 c
1-8911            Марина                2002-01-17 13:48  2002.02.04  
Цветшрифта в ячейке StringGrid


1-8880            Лана Розанова         2002-01-16 15:07  2002.02.04  
HELP FILES-ы


1-8856            Sensor                2002-01-21 12:38  2002.02.04  
Transparant


1-8845            Eraser                2002-01-21 10:58  2002.02.04  
Где sleep


1-8947            EvgenK                2002-01-15 21:51  2002.02.04  
Вопросик по OpenGL...