Aktualizacja problem z zamianą aktualizowanego pliku

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.

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
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".

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