Ich kenne InnoSetup nicht und deshalb hilft dir meine Antwort eventuell nicht allzu viel.
Ich benutze Installaware Developer, das Setup fordert Admin Rechte und damit lässt sich ein solcher (in Delphi geschriebener Dienst) installieren. Es gibt hier im Forum Code. Wenn InnoSetup das Hinzufügen/Löschen eines Dienstes nicht von Hause aus anbietet, dann kannst du diesen Teil ja auch in Delphi realisieren und während dem Setup/dem Deinstallieren ausführen lassen.
Oder du installierst einen Windows Task und prüfst zum Beispiel beim Starten der Kiste oder zu gewissen Zeiten via diesen Task (lässt sich natürlich auch mit Delphi programmieren) auf Updates.
Mein grösstes Programm läuft nicht in einer Firma, sondern draussen in der freien Wildbahn, wo jede und jeder mit teilweise mehreren gleichzeitig laufenden Sicherheitsprogrammen das Updaten unabsichtlich verhindern kann. Ich habe mit Windows Tasks mehr Erfolg. Auf mehr als 90% aller Compis läuft das Updaten damit vollautomatisch ohne Zutun der UserInnen.
Dann gibt's noch
https://docs.microsoft.com/en-us/win...-uac--patching ("User Account Control (
UAC) patching enables the authors of Windows Installer installations to identify digitally-signed patches that can be applied in the future by non-administrator users.")
Mit AdvancedInstaller kannst du mit wenigen Klicks LUA patchen:
https://www.advancedinstaller.com/us...-patching.html
[ Es gibt natürlich Menschen, welche argumentieren, dass dadurch die Kiste angreifbarer wird. Wenn es aber einen Angreifer gibt, der es schafft die Kiste unsicher zu machen, dann schafft er dies garantiert auch ohne deinen Service oder deinen Task. ]