![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Теория - *Теория* | Нужен алгоритм автоматического обновления программы |
|
|
Теория - *Теория* | Нужен алгоритм автоматического обновления программы
|
![]() Пользователь Сообщения: 69 |
Никак не могу придумать как заставить программу саму себя обновлять.
Примерно по пунктам представляю так: 1. Запуск программы 2. Скачать с сайта файл http://сайтдляобновления.рф/апдейт.txt 3. Прочитать в файле версию 4. Сравнить со своей версией 5. Если наша версия старее, качаем новую по ссылке http://сайтдляобновления.рф/апдейт.exe А что дальше делать? Как удалить текущий(выполняемый) файл, а в место него подсунуть новый и запустить? Может быть "батник" специальный можно написать, но как-то не красиво ![]() Подскажите как решить эту проблему по взрослому? зы: Если это упростит решение, использую С# |
|
Отправлено: 13:27, 28-02-2011 |
В Поисках Истины Сообщения: 802
|
Профиль | Отправить PM | Цитировать Пока файл занят, его невозможно заменить. Его по-любому нужно завершать!А далее с помощью чего нибудь заменить, будь то батник, либо что нибудь другое! В большинстве случаев же, при появлении новой версии, запускается другое приложение(апдейтер) и с помощью него уже обновляется сама программа! Сделайте что нибудь в таком же роде!
|
------- Отправлено: 13:51, 28-02-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Поспрашивал тут у яндекса (надо было до создания темы это сделать)
Цитата LilLoco:
в итоге можно так (продолжение): 6. Переименовываем себя 7. Скачиваем новый файл 8. Запускаем новый 9. Закрываем старый. Ходят слухи что такое работает, надо проверить. |
|
Последний раз редактировалось amohax, 28-02-2011 в 15:50. Отправлено: 14:19, 28-02-2011 | #3 |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать эм.. а зачем так сложно. В своей программе проверяй версию файла на сервере. Если вышло обновление скачиваешь его и запускаешь другую программу через стандартные средства виндоз, и закрываешь свою программку. Новая программка смотрит в диспетчер задач в поисках первой программы - тем самым проверяя, закрылась она или еще нет, как только закрылась - обновляет файл старой программки каким угодно образом.
Выгодна этого метода - простота, удобство, если вдруг упадет или нетак чтото обновится всегда можно предусмотреть запуск второй программы из командной строки с каким нить хитрым ключем, самостоятельно скачивающим и устанавливающим твою прогу. |
Отправлено: 17:41, 28-02-2011 | #4 |
Ветеран Сообщения: 5624
|
Профиль | Отправить PM | Цитировать Visual Studio позволяет создавать инсталлятор, который сам будет проверять обновления с любого места (локальная папка, WEB).
|
|
------- Отправлено: 01:11, 01-03-2011 | #5 |
![]() Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Цитата Delirium:
Цитата Beyound:
|
||
Отправлено: 06:14, 01-03-2011 | #6 |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать нет, я имел в виду что у тебя есть program.exe и скажем update.exe. Program.exe смотрит на сервер и, если есть, скачивает скажем update.tmp. как только она скачала - открывает update.exe и закрывает себя. Update.exe знает что делать с update.tmp и делает это, после чего снова запускает program.exe (уже новую).
Хотя можно так-же как и ты сказал. |
Отправлено: 18:05, 01-03-2011 | #7 |
![]() Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Цитата Beyound:
![]() |
|
Отправлено: 18:45, 01-03-2011 | #8 |
Старожил Сообщения: 154
|
Профиль | Отправить PM | Цитировать ну почему.. смотря как напишешь. Если реализуешь полный функциональный набор, то обновлять ненадо, а если будешь годами доделывать.. то да.. придется
|
Отправлено: 20:46, 01-03-2011 | #9 |
![]() Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Если так рассуждать, то лучше сразу в программе реализовать полный функционал, тогда вообще обновлять не придется.
|
Отправлено: 07:03, 02-03-2011 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Службы - Изменился сценарий автоматического обновления. | Ser6720 | Microsoft Windows 2000/XP | 2 | 12-12-2007 23:36 | |
.NET - *Теория*(VB.NET || C#.net ) Нужен алгоритм для мини - игры | ssdm | Программирование и базы данных | 11 | 17-05-2007 02:12 | |
полное отключение автоматического обновления | segajb | Microsoft Windows 2000/XP | 10 | 01-06-2006 10:07 | |
*Теория* | Алгоритм(ы) движения(наикротчайшего пути) | XCodeR | Программирование и базы данных | 7 | 03-10-2005 12:48 |
|