|
|
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
есть программа, запускается при загрузке системы (от вин98 до ХР) через реестр Хочу ее дописать таким образом, чтобы она при определенных условиях могла себя проапгрейдить, т.е. подменить свое запущенное тело, которое запустится заново после перегруза Как попроще это можно организовать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 10:23 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
serg1905 s> есть программа, запускается при загрузке системы (от вин98 s> до ХР) через реестр Хочу ее дописать таким образом, чтобы s> она при определенных условиях могла себя проапгрейдить, s> т.е. подменить свое запущенное тело, которое запустится s> заново после перегруза Как попроще это можно организовать? тебе попроще или чтобы работало ? в поиск, один словом, тема поднимается раз в неделю. можешь в дельфийном форуме посмотреть -- PS: Altera manu fert lapidem, panem ostentat altera Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 10:35 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
авторPS: Altera manu fert lapidem, panem ostentat altera fortuna non ... est! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 12:05 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
сама себя не может. Можно написать что-то типа загрузчика, который при запуске: а) лезет в реестр. б) если надо - обновляет программу на диске. в) запускает основную программу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 12:13 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
Makar4ikсама себя не может. Можно написать что-то типа загрузчика, который при запуске: а) лезет в реестр. б) если надо - обновляет программу на диске. в) запускает основную программу. Я б не стал так категорично. Как минимым прямую запись на диск никто не отменял:) Хотя твой вариант, конечно практичнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 12:30 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
Makar4ikа) лезет в реестр а зачем ? -- PS: Altera manu fert lapidem, panem ostentat altera Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 12:38 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас Makar4ikа) лезет в реестр а зачем ? Это к примеру. Чтобы проверить версию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.09.2006, 12:51 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
Я тут извратился немного и написал следующим образом. Исходные данные х1 - программа, которая работает и которую надо обновить х2 - та же самая программа, но версия свежее х1 видит, что есть ее обновление. запускает х2. х2 убивает процесс х1. Меняет программу на х2 (х1 становится равной х2). х2 запускает новую х1. Новая х1 убивает процесс х2 и удаляет лишние файлы. Я немного упростил описание нового алгоритма. Но суть та же. Тестировалось, вроде все работает. Вопрос такой. С точки зрения системы что тут может быть некорректно? Оставить так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 11:54 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
serg1905Я тут извратился немного и написал следующим образом. Исходные данные х1 - программа, которая работает и которую надо обновить х2 - та же самая программа, но версия свежее х1 видит, что есть ее обновление. запускает х2. х2 убивает процесс х1. Меняет программу на х2 (х1 становится равной х2). х2 запускает новую х1. Новая х1 убивает процесс х2 и удаляет лишние файлы. Я немного упростил описание нового алгоритма. Но суть та же. Тестировалось, вроде все работает. Вопрос такой. С точки зрения системы что тут может быть некорректно? Оставить так? А если просто, написать менеджер обнавления x3, и если x1 находит x2, то запускает менеджер, а тот все далает сам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 12:59 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
Я так и начал делать. Типа всегда запускается такой менеджер, типа его задача тока обновлять основную задачу и сам он никогда обновляться не должен. Но потом подумал, что лучше будет только один модуль, который будет сам обновляться и сам выполнят некоторые функции. Думаю так будет лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 13:07 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
serg1905Я так и начал делать. Типа всегда запускается такой менеджер, типа его задача тока обновлять основную задачу и сам он никогда обновляться не должен. Но потом подумал, что лучше будет только один модуль, который будет сам обновляться и сам выполнят некоторые функции. Думаю так будет лучше. Думаю, это зависит от специфики твоего приложения. Тебе видней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 13:19 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
Если же ктото считает, что такое обновление некорректно по отношению к системе, напишите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 14:11 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
serg1905Если же ктото считает, что такое обновление некорректно по отношению к системе, напишите убивать процесс - круто, но не правильно это... есть ресурсы, да и стиль программирования может страдать - когда такое прибивание может ойкнуться... по мне - либо выносить фазу замена/запуск за полный останов...либо рассмотреть поддержание обновления на лету, заюзав технологию COM. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 14:18 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
Ну я ж поэтому и спрашиваю Конкретно меня ресурсы и интересовали и мне так думалось, что ресурсы убитой программы системой освобождаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 14:53 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
serg1905Ну я ж поэтому и спрашиваю Конкретно меня ресурсы и интересовали и мне так думалось, что ресурсы убитой программы системой освобождаются угумс... какие нить Браши или Пены скажем, под 95 форточками и не нуна думать что под 2003 будет по другому...гы...упасть - возможно не упадёт... или какой нить порт HTTP под дот нетом...мигом раком станет...тьху...кверху жопой... :)) правда через некоторое время - может отмереть...но знает ли об этом оригинальная программа ? гы... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 15:00 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
Спасибо за мнение, но ведь я ж тож перестраховывался. Перед запуском процесса, который убивает запускающий процесс, я освобождаю все ресурсы, которые вручную занимал. И после команды WinExec простыми словами стояло тока "return в винды". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 15:22 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
ну раз приложение само завершается, то убивать его зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2006, 21:31 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
maXmoну раз приложение само завершается, то убивать его зачем?контрольный в голову Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 07:15 |
|
||
|
замена программой самой себя
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас maXmoну раз приложение само завершается, то убивать его зачем?контрольный в голову Posted via ActualForum NNTP Server 1.3 Ну если честно, то я просто не знаю, могут ли возникнуть ситуации, при которых после запуска WinExecом запускающая программа не успеет завершиться до запускаемой. А так как запускаемая должна удалять запускающую c диска, то я ее насильно снимаю. Так что шутки шутками, а я действительно делаю "конрольный выстрел" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2006, 10:37 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34012411&tid=2030428]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
405ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 744ms |

| 0 / 0 |
