Autor Beitrag
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: So 28.10.07 00:12 
Dieser Code soll mir Unterschlüssel zum aktuellen Schlüssel aus der Registry holen. Bei Delphi 3 ist das kein Problem, bei Delphi 7 kommt eine leere Liste. Zu Testzwecken hab ich auch einen String angefordert. Geht auch nicht. Also muß der Fehler in den markierten Bereichen stecken. Nur sehe ich da keinen Fehler.

Um es zu testen benötigt man ListBox1 und Button1 auf dem Formular.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
uses Registry;

procedure ListeLesen(Ext: String; List: TStrings);  // uses Registry;
var
  RegPath: String;
begin
  List.Clear;

  RegPath := Ext;

  with TRegistry.Create do { TODO : Funktioniert nicht bei Delphi 7 }
  try
    RootKey := HKEY_CLASSES_ROOT;
    OpenKey(RegPath, False);

    //ShowMessage( ReadString('PerceivedType') ); { Funktioniert auch nicht }

    GetKeyNames(List);
    CloseKey;
  finally Free end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListeLesen('.bmp', ListBox1.Items);
end;



Moderiert von user profile iconChristian S.: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am So 28.10.2007 um 01:41

_________________
Popov
Popov Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: So 28.10.07 00:29 
Also wie ich es gerade selbst festgestellt habe, ist das ein Berechtigungsproblem. Wenn ich den Code mit Admin-Rechten ausführe, dann funktioniert das, mit Eingeschränkten Rechten geht es nicht. Dabei sollte das nicht das Problem sein, denn die Lese-Rechte sind da. Bei Eingeschränkten Rechten habe ich in der HKEY_CLASSES_ROOT keine Schreibrechte, aber Leserchte. Auch hab ich bei Eingeschränkten Rechten und Delphi 7 keine Probleme HKEY_CURRENT_USER zu lesen. Bei Delphi 3 ist alles keine Problem, ich kann in HKEY_CLASSES_ROOT zwar nicht schreiben, aber lesen auf jeden Fall.

Ist das ein Bug? Kennt einer eine Lösung für das Problem?

_________________
Popov
Popov Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: So 28.10.07 00:48 
Also gut, ich habs. Vor OpenKey sollte man

ausblenden Delphi-Quelltext
1:
Access := KEY_READ;					


einsetzten (für das Lesen). Delphi 3 kennt das noch nicht. Wer mit beiden arbeitet und es nur bei Delphi 7 dazuschalten will, der sollte es so lösen:

ausblenden Delphi-Quelltext
1:
{$IFDEF VER150} Access := KEY_READ; {$ENDIF}					


Die Zeile wird dann bei allen Versionen bis auf Delphi 7 ignoriert.

Ich wußte nicht, daß man bei Delphi 7 bei HKEY_CLASSES_ROOT erst Access setzten muß. Bei HKEY_CURRENT_USER ist das nicht nötig.

_________________
Popov
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 28.10.07 10:28 
Das ist insofern logisch, als dass Du als normaler User auf HKEY_CLASSES_ROOT als Normal-Nutzer keine Schreibrechte hast, auf den zweig für deinen eigenen Nutzer (HKEY_CURRENT_USER) aber schon ...

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Popov Threadstarter
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: So 28.10.07 15:48 
Wie ich oben schon schrieb, es geht und ging um Lesen.

_________________
Popov