Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

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

 
Александр ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.015 c
3-1183542343
HID
2007-07-04 13:45
2007.11.18
Группировка и суммирование строк в таблице dbf


15-1192485282
Tirael
2007-10-16 01:54
2007.11.18
по мотивам соседней ветки...


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


2-1193037319
Abcdef123
2007-10-22 11:15
2007.11.18
Как можно уменьшить exe файл?


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