AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Registry key lesen

Ein Thema von msickel · begonnen am 23. Jan 2009 · letzter Beitrag vom 25. Jan 2009
Antwort Antwort
msickel

Registriert seit: 14. Mai 2005
108 Beiträge
 
Delphi 2005 Professional
 
#1

Registry key lesen

  Alt 23. Jan 2009, 21:26
Hallo,

ich verwende folgenden Code um den Winlogon aus der Registry zu lesen.
Das geht auch solange wie ich lokal oder als admin angemeldet bin, als normaler User gehts nicht warum?

Gibt es eine andere Möglichkeit?

Delphi-Quellcode:

uses Registry;

procedure TForm1.Button1Click(Sender: TObject);
 begin
    with TRegistry.Create do
    begin
      RootKey := HKEY_LOCAL_MACHINE;
      OpenKey( 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', False );
      ShowMessage(ReadString('DefaultDomainName'));
    end;
 end;
Martin
ich weiss, das ich nichts weiss!
  Mit Zitat antworten Zitat
craash

Registriert seit: 23. Nov 2008
Ort: Mühlacker
79 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Registry key lesen

  Alt 23. Jan 2009, 21:54
hi,

dass ein normaler user keine registryeinträge lesen/ändern kann liegt (wahrscheinlich) in der gruppenrichtlinie begründet.

gpedit.msc > Benutzerkonfiguration > Administrative Vorlagen > System > "Programme zum Bearbeiten der Registrierung deaktivieren" (win2000) / "Zugriff auf Programme zur Bearbeitung der Registrierung verhindern" (xp) o.ä.

wie das bei vista bearbeitet werden kann weiß ich leider nicht sicher :S


mfg


/edit: bei vista gehts per regedit > Bearbeiten > Berechtigungen
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Registry key lesen

  Alt 23. Jan 2009, 22:03
Zitat von msickel:
Hallo,

ich verwende folgenden Code um den Winlogon aus der Registry zu lesen.
Das geht auch solange wie ich lokal oder als admin angemeldet bin, als normaler User gehts nicht warum?
Halli Hallo,

Erst einmal: die OpenKey-Methode gibt dir ein boolean zurück um anzuzeigen, dass der Aufruf erfolgreich war. Dieses Ergebis wertest du nicht aus! (der Rückgabewert wird nicht ohne Grund geliefert! )

Zu deinem Problem:

Delphi (bzw. die Unit "Registry") fordert beim öffnen eines Registry Keys normalerweise volle Rechte an (also auch Schreibrechte). Um das zu verhindern kann man das Property "Access := KEY_READ" setzen. Also so:

Delphi-Quellcode:
procedure TForm1.Button_1Click(Sender: TObject);
begin
  with TRegistry.Create do begin
    RootKey := HKEY_LOCAL_MACHINE;
    Access := KEY_READ;
    if OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', False) then
      ShowMessage(ReadString('DefaultDomainName'))
    else
      ShowMessage('Ooops...')
  end;
end;
Dann klappt das Lesen auch als normaler Benutzer (aber man kann keine schreibenden Funktionen mehr verwenden!!!)

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Registry key lesen

  Alt 23. Jan 2009, 22:05
Zitat von msickel:
Das geht auch solange wie ich lokal oder als admin angemeldet bin, als normaler User gehts nicht warum?
Delphi öffnet die Reistry dummerweise mit ALL_ACCESS also zum Lesen UND Schreiben. Da du als normaler Bneutzer auch lesen kannst, musst du nur den Schlüssel explizit zum Lesen öffnen. Das kannst du machen, in dem du im Konstrukor von TRegistry die entsprechende Konstante übergibst oder ... Mist, es gibt noch eine andere Möglichkeit, die fällt mir nur gerade nicht ein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#5

Re: Registry key lesen

  Alt 23. Jan 2009, 22:18
Oder OpenKeyReadOnly verwenden. Siehe Delphi-Hilfe.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Registry key lesen

  Alt 23. Jan 2009, 22:25
Zitat von Andreas L.:
Oder OpenKeyReadOnly verwenden. Siehe Delphi-Hilfe.
Genau das ist mir nicht eingefallen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Registry key lesen

  Alt 24. Jan 2009, 00:27
Hallo,

zum Thema "Konstruktor" fällt mir immer "Destruktor" ein...

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Registry key lesen

  Alt 24. Jan 2009, 09:33
Zitat von Hawkeye219:
Hallo,

zum Thema "Konstruktor" fällt mir immer "Destruktor" ein...
Oh ja. Machen wir es jetzt wie bei Dalli Dalli? Mir fällt noch "Ressourcenschutzblock" ein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
msickel

Registriert seit: 14. Mai 2005
108 Beiträge
 
Delphi 2005 Professional
 
#9

Re: Registry key lesen

  Alt 24. Jan 2009, 12:07
Super, vielen Dank für die Antworten!

Martin
ich weiss, das ich nichts weiss!
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#10

Re: Registry key lesen

  Alt 25. Jan 2009, 19:13
Zitat von Alfi001:

Delphi (bzw. die Unit "Registry") fordert beim öffnen eines Registry Keys normalerweise volle Rechte an (also auch Schreibrechte). Um das zu verhindern kann man das Property "Access := KEY_READ" setzen. Also so:

Delphi-Quellcode:
procedure TForm1.Button_1Click(Sender: TObject);
begin
  with TRegistry.Create do begin
    RootKey := HKEY_LOCAL_MACHINE;
    Access := KEY_READ;
    if OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon', False) then
      ShowMessage(ReadString('DefaultDomainName'))
    else
      ShowMessage('Ooops...')
  end;
end;
Sollte man Access nicht vor RootKey setzen?
  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 04:58 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