Dieser Schlüssel wird offenbar nicht von deinem Setup während der Installation angelegt, stimmt´s? Ansonsten würde er nämlich automatisch entfernt werden. Genau das wäre die eleganteste Lösung. Erstell einen leeren Schlüssel, bzw. einen mit gefakten Einträgen, in der [Registry]-Sektion, dann legt das Setup ihn schon beim Installieren an. Vorteil: Er landet in der Log-Datei, und der Uninstaller kann ihn entfernen.

Müsste IMHO so aussehen:
Quelltext
1: 2: 3: 4:
| [Registry] Root: HKCU; Subkey: "Software\...\Run"; ValueName: "Programm"; \ ValueType: "string"; ValueData: "{app}\MyApp.exe"; \ Flags: dontcreatekey uninsdeletevalue |
Die Flags sind wichtig. Dabei wird der Schlüssel nicht angelegt, aber beim Deinstallieren wird der Wert entfernt.
Wenn du es aber per Skriptsprache machen willst, dann wäre vllt. die neue Uninstaller-Ereignisfunktion "CurUninstallStepChanged" gut geeignet. Parameter ist ein so genannter TUninstallStep, von denen du mal
usUninstall oder
usPostUninstall ausprobieren solltest. Ersterer wird
vor der Deinstallation ausgelöst, letzterer danach. Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| procedure CurUninstallStepChanged(CurrentUninstallStep: TUninstallStep); begin if CurrentUninstallStep = usUninstall then begin end; end; |
Geht aber erst ab Inno Setup 5, AFAIK.