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

Вниз

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

 
Intel   (2009-11-19 17:03) [0]

Вот проверил я версию, переименовал, удалил, скачал новую, запускаю WinExec(программа), вышел

Почему так не работает?


 
clickmaker ©   (2009-11-19 17:04) [1]

что переименовал, что удалил, куда вышел?


 
Intel   (2009-11-19 17:09) [2]

program aaa
var
 флаг, что стоит новая версия: логическая;
begin
 если мой файл старше, чем лежащий на сервере, то свой я переименовыю,  скачиваю новую версию, старую удаляю, ставлю флаг, что новая версия стоит.

если не новая версия стоит, то инициализация приложения.....

иначе WinExec(aaa, 0)
end;


 
oldman ©   (2009-11-19 17:27) [3]


> то свой я переименовыю,  скачиваю новую версию, старую удаляю


Надеюсь, переименовываешь и удаляешь не открытое в данный момент приложение?
:)))


 
Омлет ©   (2009-11-19 17:29) [4]

Код покажи.


 
Intel   (2009-11-19 17:31) [5]


> oldman ©   (19.11.09 17:27) [3]

именно


> Омлет ©   (19.11.09 17:29) [4]

один в один как написано выше


 
Омлет ©   (2009-11-19 17:34) [6]

Покажи код.


 
oldman ©   (2009-11-19 17:35) [7]

Я раньше догадывался, а теперь знаю точно, почему Microsoft не очень любит Intel
:)


 
Intel   (2009-11-19 17:37) [8]

var
 iFileName: string;
 iFileNameBak: string;
 iFileNameR: string;
 iLDate, iRDate: TDateTime;
 IsUpdate: Boolean;
 sr: TSearchRec;
begin
 IsUpdate := False;
 iFileName := Application.ExeName;
 iFileNameBak := iFileName + ".bak";
 if FileExists(iFileNameBak) then
   DeleteFile(iFileNameBak);
 if FileExists(iFileNameBak + "1") then
   DeleteFile(iFileNameBak + "1");
 iFileNameR:="\\server\" + ExtractFileName(iFileName);
 //- îáíîâëåíèå èñïîëíÿåìîãî ôàéëà
 if FileExists(iFileNameR) then
 begin
   iLDate:=FileDateToDateTime(FileAge(iFileName) );
   iRDate:=FileDateToDateTime(FileAge(iFileNameR) );
   if iLDate < iRDate then
     if CopyFile(PChar(iFileNameR), PChar(iFileNameBak), False) then
       if MoveFile(PChar(iFileName), PChar(iFileNameBak + "1") ) then
         if MoveFile(PChar(iFileNameBak), PChar(iFileName) ) then
           if MoveFile(PChar(iFileNameBak + "1"), PChar(iFileNameBak) ) then
             IsUpdate := True;

 if not IsUpdate then
 begin
   Application.Initialize;
   .....
 end
   else WinExec(PChar(ExtractFileName(iFileName)), 0);


 
stas ©   (2009-11-19 17:38) [9]

Intel   (19.11.09 17:03)
тебе нужен лоадер.
1. запускается
2. проверяет наличие твоец прогораммы
3. сверяет версии
4. обновляет
5. запускает
6. выгружается


 
Intel   (2009-11-19 17:39) [10]

end пропустил


 
Intel   (2009-11-19 17:42) [11]


> stas ©   (19.11.09 17:38) [9]

сделал я лоадер:

.....
end
  else WinExec(PChar(loader.bat), 0);

в котором просто написано
exec proga.exe


 
clickmaker ©   (2009-11-19 17:44) [12]

> exec proga.exe

а что, уже есть такая команда - exec?
в какой ОС?

Впрочем, дела это не меняет.


 
Омлет ©   (2009-11-19 17:49) [13]

> MoveFile(PChar(iFileName), PChar(iFileNameBak + "1") )

Ты меняешь имя запущенной программы?


 
oldman ©   (2009-11-19 17:55) [14]


> Омлет ©   (19.11.09 17:49) [13]
> Ты меняешь имя запущенной программы?


Мало того, под "Programm.exe" (после обновления) в кеше одно, а на диске другое.

Ну, я уже в  [7] отметил


 
Intel   (2009-11-19 17:57) [15]


> clickmaker ©   (19.11.09 17:44) [12]

start - пойдет?


> Омлет ©   (19.11.09 17:49) [13]

ня, можить им поверишь:
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1138


 
Intel   (2009-11-19 17:59) [16]


> oldman ©   (19.11.09 17:55) [14]

ну хоть кто-то ответил. Спасибо.


 
Омлет ©   (2009-11-19 18:01) [17]

> [15] Intel   (19.11.09 17:57)

Ну так там другой код! )))


 
Intel   (2009-11-19 18:03) [18]


> Омлет ©   (19.11.09 18:01) [17]

серьезно?
правда?
да ну?
уверен?
не врешь?


 
oldman ©   (2009-11-19 18:05) [19]


> Intel   (19.11.09 17:59) [16]


Может проще так:

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


 
Омлет ©   (2009-11-19 18:07) [20]

> серьезно?

Думаешь Sleep-ы там просто так понатыканы?


 
oldman ©   (2009-11-19 18:13) [21]


> Intel   (19.11.09 18:03) [18]
> серьезно?


http://www.delphikingdom.com/asp/articles_forum.asp?ArticleID=1138

обсуждение статьи читал?



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

Текущий архив: 2010.01.24;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.014 c
2-1259845543
Wind001
2009-12-03 16:05
2010.01.24
Передать массив как параметр


1-1233757927
jetus
2009-02-04 17:32
2010.01.24
Получить название метода


15-1258538079
Palladin
2009-11-18 12:54
2010.01.24
Семь раз отмерь, один раз отрежь.


3-1233646344
Sergey2
2009-02-03 10:32
2010.01.24
неверно отображаются записи в таблице


4-1206528449
SpellCaster
2008-03-26 13:47
2010.01.24
Заюзать метод класса как WindowProc