Приветствую гуру программирования.
У меня довольно простой вопрос: Как перезаписать exe, который в данный момент запущен. То есть пользователь выкачал из интернета ноую версию продукта (с помощью встроенного автообновителя) и необходимо перезаписать файлы. Перезаписывается все (dll, если есть — останавливаются и так-же перезаписываются), кроме самого exe. А его трогать нельзя так как он щас работает. В принципе надо сделать так, чтоб приложение выгрузилось, перезаписалось и снова стартануло, но как это сделать кроме как перезаписать exe и запустить самого себя — не знаю. Надеюсь на ответ.
WBR Warstone
Здравствуйте, Warstone, Вы писали:
W>У меня довольно простой вопрос: Как перезаписать exe, который в данный момент запущен.
http://www.delphiworld.narod.ru/base/app_delete_itself.html
http://www.delphiworld.narod.ru/base/app_delete_itself2.html
Переименнуй myapplication.exe в myapplication.exe.bak это можно сделать даже если программа запущена, скопируй новый myapplication.exe на это место и запусти его.
Добавь в начало своей проги чтобы она удаляла myapplication.exe.bak если найдет его рядом с собой
Здравствуйте, Warstone, Вы писали:
W>Приветствую гуру программирования.
W>У меня довольно простой вопрос: Как перезаписать exe, который в данный момент запущен. То есть пользователь выкачал из интернета ноую версию продукта (с помощью встроенного автообновителя) и необходимо перезаписать файлы. Перезаписывается все (dll, если есть — останавливаются и так-же перезаписываются), кроме самого exe. А его трогать нельзя так как он щас работает. В принципе надо сделать так, чтоб приложение выгрузилось, перезаписалось и снова стартануло, но как это сделать кроме как перезаписать exe и запустить самого себя — не знаю. Надеюсь на ответ.
W>WBR Warstone
А если взять скажем автообновление выделить в отдельное приложение, ну и запустить, а если нуно визуально обдмануть юзера, возьми основную форму передай по хэндлу в автообновляльщик и пусть юзер радуется
alxadm
Здравствуйте, Аноним, Вы писали:
А>А если взять скажем автообновление выделить в отдельное приложение, ну и запустить, а если нуно визуально обдмануть юзера, возьми основную форму передай по хэндлу в автообновляльщик и пусть юзер радуется 
Тут сразу начинаются вопросы: А как обновить обновляльщик? Да так, чтоб архив, в котором обновление, не пришлось открывать снова, а так-же не пришлось перемещать файлы... Вобщем считаю что довольно сложное обновление получается, хотя в одной из моих программ я это реализовал. Правда там была какая-то ошибка, но кажись из-за моей малограмотности (оно не всегда обновляло основной exe)