![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление программы, вызываемое из неё самой ... [D5, Win95/98, WinME]
Quest © (2002-01-30 12:05:00)Ситуацияследующая, существует программа запускающаяся при запуске Windows (HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\...) и после выполнения своей задачи, мирно закрывающаяся ... так вот задачав том, чтобы перед или после выполнения своей задачи - программа проверила на удалённом ресурсе существование более свежей версии данной программы и если таковая существует - выполнить замещение (перезапись) её локального варианта ...
Как пример можно использовать DRWEB , то есть использование отдельной програмки Upgrade.exe которая и будет проверять и переписывать файл основной программы, но как результат, необходимо отслеживать закрытие основной программы и т.д. ...
ВОПРОС:но нельзя ли это сделать другим способом ?
Есть идеи?
pasha_golub (2002-01-31 11:34:00) [1]Можно и менять, но только бы не запутаться.
ValeraVV (2002-01-31 11:08:00) [2]Оформи весь код в DLL, оставив в EXE только загрузчик и обновлялку и распространяй DLL
Quest (2002-01-31 08:55:00) [3]Не слишком ли усложнённое решение? ... выходит upgrade.exe - должен каждый раз запускаться и ждать когда завершиться prog.exe ? .... а как же происходит обновление DrWEB, при запущенной программе?
vlv (2002-01-30 15:51:00) [4]Можно использовать сообщения.
Пишешь 2 проги:
prog.exe и upgrade.exe.
prog.exe запускает upgrade.exe когда ей захочется.
upgrade.exe смотрит твой ресурс. При нахождении чего-то шлет мессагу: SendMessage(handle_PROGEXE, WM_ЗАКРОЙСЯ,0,0) и ждет зыкрытия prog.exe(опрашивая процессы). Затем тупо грузит обновление.
Quest (2002-01-30 12:20:00) [5]то есть менять имя программы от версии к версии (апргрейд может быть ежедневным) Например: prog1.exe -> prog2.exe -> prog1.exe -> prog2.exe -> prog1.exe -> ... ? ты это имел ввиду?
pasha_golub (2002-01-30 12:14:00) [6]Если есть новая версия, то скачать ее, прописать в реестре вместо старой, а новая программка должна обнаружить и удалить старую. Или быть может все серъезней?