Schreib einen Launcher, der aus einem Ordner jeweils die neueste Version der Software startet.
Laufende Programme werden nicht beachtet.
Irgendwann wird der Nutzer das Programm beenden und wenn er es beim nächten mal startet, startet der Launcher das geupdatete Programm.
Oder wenn du das auch verhindern willst, lausche mit
Indy auf einem beliebigen freigegbenen Port und warte darauf, dass jemand (du) eine Anfrage "Update" sendet. Sobald die Anfrage eintrifft, öffne eine MessageBox, die dem Nutzer sagt, dass er seine Anwendung gefälligst neuzustarten hat.
(der Vorschlag von Jonas Shinaniganz)