Einzelnen Beitrag anzeigen

Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.682 Beiträge
 
Delphi 5 Professional
 
#1

(T)Registry und Wow6432Node

  Alt 10. Mai 2015, 00:11
Delphi-Version: 5
Hallo, ich bin's schon wieder .

Der Titel ist zwar nicht unbedingt eindeutig, aber es geht nicht um das Übliche, den Zugriff auf 64 Bit Zweige von einem 32 Bit Programm aus.

Folgender Code zum Einstieg:
Delphi-Quellcode:
const KEY = '\Software\Microsoft\Windows\CurrentVersion\Run'
var reg: TRegistry;
    Laccess: DWORD;
begin
    Laccess:= KEY_READ;
    reg:= TRegistry.Create(Laccess, False);
    reg.RootKey:= HKEY_LOCAL_MACHINE;
    try
        if reg.OpenKey(KEY) then
            ShowMessage(reg.CurrentPath);
    finally
        reg.Free;
    end;
end;
Nun gibt reg.CurrentPath logischerweise denselben Schlüssel zurück wie ich reingebe. Und zwar auch dann, wenn es ein WOW64-Prozess ist. Selbe Geschichte in einem 64 Bit Prozess, wenn man TRegistry.Access auf KEY_READ or KEY_WOW64_32KEY setzt, um an den 32 Bit Schlüssel zu kommen. Gibt es einen Weg, an den vollen/umgeleiteten Schlüssel zu kommen, ohne manuell das "Wow6432Node" reinzupacken?

Ich möchte das nur zur Anzeige nutzen, nicht zum Zugriff auf die Registry. Das soll es dem Benutzer erleichtern, im Fall des Falles zum Schlüssel zu navigieren (z.B. im regedit).

MfG Dalai

Geändert von Dalai (10. Mai 2015 um 12:44 Uhr) Grund: RootKey ergänzt, Parameter bei OpenKey ergänzt
  Mit Zitat antworten Zitat