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