Wir haben in unserem Apps eine Funktion drin "beende Clienten" und "starte Clienten neu".
Jeweils mit Zeitangabe.
Die Benutzer sehen dann einen Dialog mit Timeout "Programm muß neu beendet/gestartet werden" ... 10 ... 9 ... 8 ...
(natürlich mit mindestens einer Minute)
Bei Neustart starten die Anwendungen dann, nach ablauf des Timeouts, eine billige Autostart.exe, mit ihrem Programmpfad als Startparameter (ParamStr(0) + Parameter "-autostart" + Verzögerungszeit) und beenden sich selber.
Die autostart.exe (die darf beim Update nicht angetastet/verändert werden, und wenn doch, dann bevor die Neustart initiiert wird) wartet dann etwas und startet die Clienten wieder.
(wichtig für die BDEs, wo nicht immer wer davor steht und vorallem da wo kein Benutzer von irgendwas eine Ahnung hat
)
[edit]
MakeFileNameFromTimeReadableCompact ist bestimmt eine "selbsgeschriebene" Funktion.
Und ddas andere: Windows? oder siehe erstmal im
MSDN, in welcher Headerdatei das definiert ist.
Bzw. über Strg+Shift+F in deinen Delphi-Sourcen danach suchen