AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programmupdate bei geöffneter EXE

Ein Thema von haentschman · begonnen am 12. Aug 2020 · letzter Beitrag vom 15. Aug 2020
 
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.748 Beiträge
 
Delphi 12 Athens
 
#20

AW: Programmupdate bei geöffneter EXE

  Alt 13. Aug 2020, 13:09
Das Problem mit dem Austauschen ... im Prinzip, mag bei einer EXE gehen.

Bei uns gab es das auch mal (die Funktion für den Shutdown gab es zwar, aber machmal funktionierten die Notifications nicht *1 oder die EXE blieb beim Runterfahren hängen *2)
1) für den Fall wird nun im Programm successive geprüft, ob sich die Datei geändert hat und dann auch der Neustart angestoßen.
2) hier wird nun ein Thread gestartet, der nach x Sekunden ein TerminateProcess ausführt, wenn das Beenden hängt
Manuell hatte Cheffchen die Dateien in dem Verzeichnis gelöscht (INIs und Co. hoffentlich überprungen), was sich nicht löschen ließ umbenannt (*.exe > *.exe.del > weil manchmal Programme lange offen waren oder schnelle Updatefolge auch schonmal *.exe.del_DATUM)
später hatte ich das Vorgehen (bin da bisl faul) durch eine Batch ersetzt, die das automatisch macht. > Zips entpacken in Unterverzeichnis, Backup erstellen (hab ich mal eingeührt) > Dateien löschen und den Rest umbenennen > das Entpackte rüberkopieren (vorher entpackt, um die Dateiintigrität gleich mit zu prüfen, und damit der eigentlich Austausch möglichst schnell geht)

Bei einer EXE geht das noch,
aber bei dynamisch gekladenen Packages und DLLs+Packages raucht es schnell ab, wenn die dann in einem "alten" Programm geladen werden soll und nichts mehr zusammen passt.

Wenn es bei einer Neztfreigabe aber die aktive EXE nach dem Trennen die Verbindung zum "alten" Dateinamen neu aufbaut, anstatt mit einen Verbindungsfehler abzurauchen, dann läd sie eventuell falschen Code in ihren Speicher, wenn Windows vorher das Programm aus dem Speicher ausgelagert und Speicherseiten entladen hatte und der Programmierer kein IMAGE_FILE_NET_RUN_FROM_SWAP benutzt.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (13. Aug 2020 um 13:30 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz