Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Вниз

Автоматическое копирование обновлённой версии программы   Найти похожие ветки 

 
Александр ©   (2007-10-16 11:32) [0]

Добрый день. Подскажите как реализовать следующую задачу: существует программа, работающая с базой данных, она установлена на нескольких компьютерах, необходимо при запуске проверить не выложена ли на сервере обновленная версия и, если выложена, скопировать её и запустить. Проблема в том, что когда программа загружена в память её (exe-шник) не перезаписать. Спасибо.


 
tesseract ©   (2007-10-16 11:35) [1]


> Проблема в том, что когда программа загружена в память её
> (exe-шник) не перезаписать. Спасибо.


Пиши второй exe-шник и перезаписывай через него.


 
ЮЮ ©   (2007-10-16 11:36) [2]

Самое простое:

запускать bat-ник, где
1) скопировать ехе-шник с сервера
2) запустить его

Написать программу с аналогичной функциональность и запeскать её, а не реальный ехе-шник


 
Sergey13 ©   (2007-10-16 11:46) [3]

> [0] Александр ©   (16.10.07 11:32)

Я тебе в вопросе о компонентах адрес давал. Там, по этой ссылке, есть и для этого примочка -Program Starter & Updater  - внизу поищи.


 
Prohodil Mimo ©   (2007-10-16 12:26) [4]

Александр ©   (16.10.07 11:32)
Проблема в том, что когда программа загружена в память её (exe-шник) не перезаписать.


Зато его можно переименовать.
Я так делал: при запуске сравнивал версию файлов (себя и на сервере), если на сервере новее, переименовывал запущенный (exe-шник), копировал в каталог с ним с сервера, запускал его, а из этого выходил. Новый (exe-шник) при запуске удаляет переименованный файл.


 
Prohodil Mimo ©   (2007-10-16 12:28) [5]

Кстати, у меня пару лет назад что-то с вин ХР произошло, я мог удалять запущенные (exe-шники). Значит в винде такая возможность существует, надо только её найти и освободить :о)


 
Брюнетка ©   (2007-10-16 13:05) [6]

> [3] Sergey13 ©   (16.10.07 11:46)

А мне можно тоже такую ссылку? -)


 
Sergey13 ©   (2007-10-16 13:07) [7]

> [6] Брюнетка ©   (16.10.07 13:05)
Для тебя все что угодно. 8-)

http://polesoft.ru/


 
GlFox ©   (2007-10-16 13:17) [8]

Когда-то я делал так:
- запускается программа, ломится по прописанным в ini-шнике серверам (который первый доступный)
- далее считывает файл с текущей версией и параметрами апдейта (перезапуск нужен или нет...)
- запускает с сервака bat-ник, а сама выгружается, если надо
- далее уже батник занимается обновлением и перезапуском программы (если надо), для всяких замороченных апдейтов, иногда применял вызов своего самописного .Inf - файла (через rundll вроде)


 
Ломброзо   (2007-10-16 13:30) [9]

Рискну пропеарить Microsoft:

Updater Application Block
http://msdn2.microsoft.com/en-us/library/ms978574.aspx

Background Intelligent Transfer Service (BITS)
http://msdn2.microsoft.com/en-us/library/ms997639.aspx


 
Ломброзо   (2007-10-16 13:31) [10]

Ну и плюс ClickOnce


 
БарЛог ©   (2007-10-16 14:06) [11]

Prohodil Mimo ©   (16.10.07 12:26) [4]
+1


 
ZeroDivide ©   (2007-10-16 14:27) [12]

Алгоритм такой:
EXE в EXE, первый запускает второй, завершается, второй апдейтит первый, если скачался нормально, перезаписывает первый, запускает, завершается

(У нас файлы версий хранятся в БД)

Особенно обратить внимание на момент апдейта: не удаляйте exeшник, пока новая версия не скачалась с правильной контрольной суммой!


 
ZeroDivide ©   (2007-10-16 14:29) [13]

Еще точнее:
EXE в EXE, первый выгружает из себя второй, запускает второй, завершается, второй апдейтит первый, если скачался нормально, перезаписывает первый, запускает, завершается, самоубивается с диска


 
stud   (2007-10-16 14:34) [14]

а может так:
первый проверяет версию на сервере и локальную, если обновлять не нужно - запускает локальную и сам завершается. если нужно обновить - обновляет, и сам завершается


 
iZEN ©   (2007-10-16 15:50) [15]

Использовать Java WebStart.


 
й1   (2007-10-16 19:04) [16]


> Java WebStart.

а также виртуальную машину с турболинухом


 
iZEN ©   (2007-10-17 00:17) [17]


> й1   (16.10.07 19:04) [16]
> а также виртуальную машину с турболинухом

турболинух ненужен


 
Petr V. Abramov ©   (2007-10-17 00:22) [18]

> ZeroDivide ©   (16.10.07 14:27) [12]
> EXE в EXE,
а внутри bat Ж)
ну можно и так, но проще start.exe, который версию проверяет, если надо, копирует, и передает program.exe
только под вистой вроде работать не будет



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.044 c
2-1193178890
хочу знать...
2007-10-24 02:34
2007.11.18
Преобразование типов!


15-1192696869
Shlomo
2007-10-18 12:41
2007.11.18
С D7 проект перешёл в D2006 и стал требовать DsnDBCst.pas/dcu – у


2-1193504034
Steep
2007-10-27 20:53
2007.11.18
Поиск папок


2-1193317971
JSman
2007-10-25 17:12
2007.11.18
не отображать содержимое окна при перетаскивании


11-1177267281
optimist
2007-04-22 22:41
2007.11.18
KOL + C++





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский