AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Innosetup: Verständnisfrage zur Registry (HKCU)
Thema durchsuchen
Ansicht
Themen-Optionen

Innosetup: Verständnisfrage zur Registry (HKCU)

Ein Thema von Codehunter · begonnen am 3. Mär 2014 · letzter Beitrag vom 4. Mär 2014
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Innosetup: Verständnisfrage zur Registry (HKCU)

  Alt 3. Mär 2014, 14:47
Hallo!

Ich habe ein Setup, das unter HKCU\Software ein paar Schlüssel anlegt. Da das Setup dann als Administrator ausgeführt wird, landen die Schlüssel logischerweise im HKCU-Zweig vom Admin-Konto. Soweit klar. Ziel soll aber sein, dass jedes Benutzerkonto seine eigenen Programmeinstellungen bekommt, also jeweils einen HKCU-Zweig.

Was ich nicht verstehe ist, wie andere Installer verfahren wenn man dort auswählt "Für alle Benutzer einrichten". Wird dann dort alles in den HKLM-Zweig geschrieben und das eigentliche Programm "klont" die Einstellungen dann in den jeweiligen HKCU-Zweig? Oder wie muss man sich das vorstellen?

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

AW: Innosetup: Verständnisfrage zur Registry (HKCU)

  Alt 3. Mär 2014, 14:54
Ich weiß nicht, wie andere das machen, aber eine Möglichkeit wäre: nach den Einstellungen in HKCU suchen und wenn gefunden, diese benutzen, ansonsten deren Pendants aus HKLM. So hat jeder Benutzer die gleichen Vorgabewerte, kann diese aber nach eigenem Gusto ändern.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Innosetup: Verständnisfrage zur Registry (HKCU)

  Alt 3. Mär 2014, 15:02
Wie sind eigentlich nach heutiger Lesart (Vista und höher) die "Gepflogenheiten" im HKCU-Zweig? Darf man da mit einer Anwendung die nicht im Admin-Kontext läuft nach Herzenslust drin rum schreiben?
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Innosetup: Verständnisfrage zur Registry (HKCU)

  Alt 3. Mär 2014, 15:05
Ja. Wenn man nicht mit einem Guest-Account arbeitet.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Innosetup: Verständnisfrage zur Registry (HKCU)

  Alt 3. Mär 2014, 15:07
Solange man an die passenden Stellen schreibt, kann man da schreiben wie man möchte, ja. Man sollte allerdings nie voraussetzen, dass man auch überall die Rechte hat, denn die kann man ja jederzeit ändern. Wenn das nicht geht, sollte das daher entsprechend abgefangen werden.

Das automatische Anlegen ist in der Tat ein üblicher Weg. Wenn man Delphi mit einem anderen Profil startet, wird das auch in der Registry entsprechend angelegt, wenn es noch nicht da ist.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Innosetup: Verständnisfrage zur Registry (HKCU)

  Alt 3. Mär 2014, 16:05
Hmm, jetzt habe ich mal versucht so eine Klonerei zu implementieren. Im Adminkontext funktioniert das auch, die Schlüssel und Werte werden aus HKLM in HKCU geklont falls sie da nicht existieren. Im normalen Userkontext (NICHT Gast sondern Standardbenutzer) dagegen nach wie vor keine Schreiboperation möglich. Ich habe die Unit mal angehängt. Der ganze Zauber findet in ValueExists statt:
Delphi-Quellcode:
function TRegConfig.ValueExists(const AName: string): Boolean;
var
  HKCU, HKLM: TRegistry;
  Info: TRegDataInfo;
begin
  Result:= FALSE;
  try
    HKCU:= TRegistry.Create(KEY_ALL_ACCESS or KEY_WOW64_64KEY);
    HKLM:= TRegistry.Create(KEY_READ or KEY_WOW64_64KEY);
    HKCU.RootKey:= HKEY_CURRENT_USER;
    HKLM.RootKey:= HKEY_LOCAL_MACHINE;
    if HKCU.OpenKey(FReg.CurrentPath, TRUE) then begin
      if HKCU.ValueExists(AName) then begin
        Result:= TRUE;
        Exit;
      end else begin
        if HKLM.OpenKey(FReg.CurrentPath, FALSE) and HKLM.ValueExists(AName) then begin
          HKLM.GetDataInfo(AName, Info);
          case Info.RegData of
            rdString: HKCU.WriteString(AName, HKLM.ReadString(AName));
            rdInteger: HKCU.WriteInteger(AName, HKLM.ReadInteger(AName));
          end;
          Result:= TRUE;
        end;
      end;
    end;
  finally
    FreeAndNil(HKCU);
    FreeAndNil(HKLM);
  end;
end;
Angehängte Dateien
Dateityp: pas RegConfig.pas (6,4 KB, 2x aufgerufen)
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Innosetup: Verständnisfrage zur Registry (HKCU)

  Alt 3. Mär 2014, 16:49
Kleine Frage am Rande, vielleicht bringt das auch die andere Frage nach "Installation für alle" etwas weiter:

Wie steht es heutzutage eigentlich mit der Registry-Virtualisierung? Den verlinkten Artikel würde ich so zusammenfassen:
  • Will jemand ohne Adminrechte in HKLM\Software\ schreiben, wird das nach HKCU\Software\Classes\VirtualStore\ umgeleitet und zugelassen

In der Praxis kann ich das nicht nachvollziehen. Hatte das nur unter Windows Vista Bestand? Das einzige was ich beobachten kann, ist das ein Ausführen im Kompatiblitätsmodus bewirkt, dass das Öffnen eines Schlüssels in HKLM\Software zwar genehmnigt wird, wenn man Schreibrechte anfordert, aber letztendlich fehlschlägt, wenn man tatsächlich etwas schreiben möchte.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.580 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Innosetup: Verständnisfrage zur Registry (HKCU)

  Alt 3. Mär 2014, 17:12
Wie steht es heutzutage eigentlich mit der Registry-Virtualisierung?
Die greift nur, wenn die Anwendung kein Manifest drin hat, mit der sie bestätigt für XP und höher geeignet zu sein. Wenn die Anwendung ein solches Manifest drin hat, geht Windows davon aus, dass sie auch für die Windowsversion tauglich ist und führt diese Virtualisierung nicht aus.

Denn gedacht ist diese für alte Programme, die vor XP entstanden sind.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.156 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Innosetup: Verständnisfrage zur Registry (HKCU)

  Alt 3. Mär 2014, 19:54
Alter Schwede, genau das war es! Vielen Dank!
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Innosetup: Verständnisfrage zur Registry (HKCU)

  Alt 4. Mär 2014, 08:27
Unabhängig von dem eigentlichen Problem ist mir gestern Abend noch ein weiteres eingefallen: Wenn ich diese Klonerei von HKLM nach HKCU betreibe, dann kann der Uninstaller am Ende die Registry nicht vollständig bereinigen. Woher soll der denn auch wissen was da später noch geklont wurde? Außerdem hätte der ja das selbe Problem wie der Installer, nämlich gar nicht an die HKCU aller Konten heran zu kommen.

Also irgendwo mach ich da noch einen grundsätzlichen Denkfehler...
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 03:03 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