Aktualizacja problem z zamianą aktualizowanego pliku

Odpowiedz Nowy wątek
2011-10-21 17:59
0

Witam.
Mój problem jest taki. Aktualizator (który jest w programie jako 2 forma) pobiera plik update.exe, który jest spakowany SFX WinRAR. Zrobiłem drugi program o nazwie "killprocess.exe" który zabija proces "project4.exe". W WinRAR dałem "Uruchom przed wypakowaniem" "killprocess.exe". Raz udało się to zrobić, drugi raz już nie. Plik "update.exe" jest na mojej stronie, nie podaję, nie będę się reklamować.

Użyty kod, który uruchamia aktualizacje:

WinExec('update.exe', SW_SHOW);
Form5.Close; // zamyka aplikacje

Widziałem programy które mają oddzielny exe który aktualizuje to wszystko ale jak wtedy zaktualizować tego 'aktualizatora'? Poza tym mój program jest mini programikiem, i nie chciałbym, żeby były dwa EXE.

Pozdrawiam,
z góry dziękuje.


Programuje w Delphi ;)
edytowany 1x, ostatnio: Alvinek34, 2011-10-21 18:00

Pozostało 580 znaków

2011-10-23 07:07
trolo lolo
0

w aplikacji glownej:

  1. zmien nazwe pliku (siebie) na tymczasowa - usunac dzialajacego pliku nie mozesz, zmienic nazwe mozesz
  2. pobierz nowa aplikacje glowna - aktualizacje
  3. ustaw jej nazwe na oryginalna dla pliku glownego aplikacji
  4. uruchom podajac w parametrze nazwe aktaulnie uruchomionego pliku (siebie)
  5. zamknij

aplikacja uruchomiona, pobrana:

  1. usun stara wersje pliku, jego nazwe masz w parametrze podanym podczas uruchomienia

Pozostało 580 znaków

2011-10-23 10:51
Opi
0

Jest jeszcze inne rozwiązanie.
Główny program aktualizujący "update.exe", jeśli chcemy, aby został zaktualizowany, może skorzystać z pliku wsadowego.

  1. "update.exe" pobiera nowszą wersję samego siebie i zapisuje jako "update.tmp",
  2. "update.exe" generuje plik wsadowy (skrypt) "update.bat",
  3. "update.exe" uruchamia skrypt i kończy swoją pracę,
  4. skrypt próbuje usunąć plik "update.exe", jeśli nie może to próbuje do skutku (+ zabezpieczenie przed zapętleniem),
  5. zmienia nazwę pliku "update.tmp" na "update.exe" i go uruchamia,
  6. usuwa sam siebie, czyli plik "update.bat".

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0