AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Werkzeuge Inno Setup - {userappdata} aller User des Systems ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Inno Setup - {userappdata} aller User des Systems ermitteln

Ein Thema von FriFra · begonnen am 13. Aug 2005 · letzter Beitrag vom 14. Aug 2005
Antwort Antwort
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#1

Inno Setup - {userappdata} aller User des Systems ermitteln

  Alt 13. Aug 2005, 23:30
Ich schreibe in meinem Setup eine default-ini in den {commonappdata}. Mein Programm schreibt nun die Daten jedes Users in dessen eigenes appdata Verzeichnis...
Wenn nun deinstalliert wird, sollen natürlich die {userappdata} Ordner aller User des Systems bereinigt werden und nicht nur der Ordner des gerade angemeldeten Users
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#2

Re: Inno Setup - {userappdata} aller User des Systems ermitt

  Alt 13. Aug 2005, 23:48
Geht nicht. Oder sagen wir: Es ist nicht einfach. Schreib der Einfachheit halber ein Cleaningtool, das nur die Einstellungen des angemeldeten Users entfernt, und das man kostenlos bekommen kann (Homepage, CD deines Programms, Bonus im Download, usw.)
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Inno Setup - {userappdata} aller User des Systems ermitt

  Alt 13. Aug 2005, 23:54
Zitat von MathiasSimmack:
Geht nicht.
Hm... das höre ich nicht gerne...
Man kann doch in Innosetup nach der Deinstallation noch pascal-Code ausführen...
Wenn ich nun eine Liste aller Benutzernamen am System hätte, könnte ich aus dem {userappdata}-string einfach "\[Username]\" gegen "\[anderer Username]\" ersetzen und dort die entspr. Ordner/Dateien suchen und ggf. löschen.
Die Frage ist nun, wo bekomme ich eine Liste mir allen Usernamen?
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#4

Re: Inno Setup - {userappdata} aller User des Systems ermitt

  Alt 14. Aug 2005, 09:27
Dann brauchst du auf jeden Fall ein externes Programm, denn die Skriptsprache von Inno Setup unterstützt das überhaupt nicht. Wie gesagt, es wird auf ein Cleaningtool hinauslaufen. Ich habe mal so was für Luckies LuckieDIPS gemacht. Das Teil hat den Profilordner des aktuell gemeldeten Benutzers ermittelt und ist dann nur eine Ebene höher gesprungen. Von da hat es sich rekursiv durch die Verzeichnisse gewühlt und Luckies INI-Datei (gehörte zu seinem LuckieDIPS) gelöscht.
Alternative, wie du schon sagtest: alle Hier im Forum suchenBenutzer auflisten und ggf. versuchen, dabei gleich deren Profil- o.ä. Ordner zu erhalten.


Wichtig wäre, dass sich dein Deinstaller dann auch nur mit Admin-Rechten ausführen lässt, weil das Cleaningtool sonst versagen dürfte.
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Inno Setup - {userappdata} aller User des Systems ermitt

  Alt 14. Aug 2005, 17:42
Ich hab mir jetzt was gebastelt um an alle bettr. Ordner heran zu kommen...
Delphi-Quellcode:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
  UserFolders, Appdata, Users, Folder:string;
  FindRec: TFindRec;
begin
  if CurUninstallStep=usPostUninstall then
  begin
    UserFolders := ExpandConstant('{commonappdata}');
    if Copy(UserFolders, Length(UserFolders),1) = '\then
      UserFolders := Copy(UserFolders, 1, Length(UserFolders) - 1);
    While Copy(UserFolders, Length(UserFolders), 1) <> '\do
      UserFolders := Copy(UserFolders, 1, Length(UserFolders) - 1);
    AppData := Copy(ExpandConstant('{commonappdata}'), Length(UserFolders), Length(ExpandConstant('{commonappdata}')));
    UserFolders := Copy(UserFolders, 1, Length(UserFolders) - 1);
    While Copy(UserFolders, Length(UserFolders), 1) <> '\do
      UserFolders := Copy(UserFolders, 1, Length(UserFolders) - 1);
    if FindFirst(ExpandConstant(UserFolders + '\*'), FindRec) then
    begin
      try
        repeat
          if Copy(FindRec.Name, 1, 1) <> '.then
          begin
            Folder := UserFolders + FindRec.Name + Appdata;
            if DirExists(Folder) = True then
            begin
              //Do something...
              msgbox(Folder, mbInformation, mb_Ok);
            end;
          end;
        until not FindNext(FindRec);
      finally
        FindClose(FindRec);
      end;
    end;
  end;
end;
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Benutzerbild von FriFra
FriFra

Registriert seit: 19. Apr 2003
1.291 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Inno Setup - {userappdata} aller User des Systems ermitt

  Alt 14. Aug 2005, 18:04
Jetzt hab ich nur noch ein Problem...
Kann ich innerhalb der CurUninstallStepChanged procedure irgendwie auslösen, dass InnoSetup die Meldung "Deinstallation unvollständig" anzeigt?
Elektronische Bauelemente funktionieren mit Rauch. Kommt der Rauch raus, geht das Bauteil nicht mehr.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz