Autor Beitrag
CodexX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

WinXP
Delphi XE
BeitragVerfasst: Fr 10.06.05 00:17 
hm, ich krieg das irgendwie nicht hin ...
wenn das programm deinstalliert wird, soll ein bestimmter registry-schlüssel/wert gelöscht werden.

die hilfe hat mir folgendes geflüstert:
RegDeleteValue(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run, Programm);

aber wo kommt das rein?
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 10.06.05 09:46 
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:
ausblenden 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure CurUninstallStepChanged(CurrentUninstallStep: TUninstallStep);
begin
  if CurrentUninstallStep = usUninstall then { oder eben ssPostUninstall }
  begin
    // Schlüssel löschen mit der Funktion, die du angesprochen hast
  end;
end;

Geht aber erst ab Inno Setup 5, AFAIK.
CodexX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

WinXP
Delphi XE
BeitragVerfasst: Fr 10.06.05 12:53 
user profile iconMathiasSimmack hat folgendes geschrieben:
ausblenden 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.

ah das ist sehr gut! wusste ich nicht.
der autostarteintrag wird wahlweise im programm angelegt und soll auf jeden fall beim deinstallieren wieder entfernt werden.
das geht ja anscheinend mit den flags. ich werde das heute abend mal ausprobieren. melde mich dann nochmal.

danke :)
CodexX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

WinXP
Delphi XE
BeitragVerfasst: Fr 10.06.05 23:37 
also sehr seltsam.
ich habe das genau so gemacht, wie du das geschrieben hast, man kann das ja auch komfortabel mit dem istool machen (da kann man auch die beiden erwähnten flags setzen). jedenfalls wird der key trotzdem bei der installation angelegt :(

ich habe das mit meiner 4.x version ausprobiert, danach extra die neuste 5er drauf gemacht, aber ist das selbe. der wert wird in der registry trotzdem angelegt.

keine ahnung warum. könntest du das vllt mal testen, ob das bei dir auch der fall ist?
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 11.06.05 08:49 
Mein Fehler, sorry :oops:. Es reicht die folgende Anweisung:
ausblenden Quelltext
1:
2:
3:
[Registry]
Root: HKCU; Subkey: "Software\Microsoft\Windows\CurrentVersion\Run"; \
  ValueName: "Programm"; Flags: uninsdeletevalue;

So wird der Eintrag namens "Programm" nicht angelegt, aber beim Deinstallieren wird er entfernt, wenn er vorhanden ist. Getestet mit Inno Setup 5.1.4.
CodexX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118

WinXP
Delphi XE
BeitragVerfasst: Sa 11.06.05 12:40 
super, es geht!

vielen dank, matthias :)