Es könnte durchaus möglich sein das diese methode auf die falsche registrierung zugreift.
Ich war mal so frei die "TRegistry.Create" anzupassen.
Im aufruf ist nun ein switch hinzugekommen womit du explizit sagen musst wohin du schreiben möchtest, 32 oder 64 bit.
(bei deinem kollegen muss vorher mit der alten uninstall methode die werte entfernt werden, die uninstall muss analog hierzu auch angepasst werden)
Delphi-Quellcode:
type
TInstallType = (it32bit, it64bit);
function InstallExt(Extension, ExtDescription, FileDescription, OpenWith,
ParamString: String; IconIndex: Integer;
const AInstallType: TInstallType): Boolean;
//const
// KEY_WOW64_32KEY = $0200;
// KEY_WOW64_64KEY = $0100;
var
Reg: TRegistry;
KeyAccess: LongWord;
begin
KeyAccess := KEY_READ;
case AInstallType of
it32bit: KeyAccess := KeyAccess + KEY_WOW64_32KEY;
it64bit: KeyAccess := KeyAccess + KEY_WOW64_64KEY;
end;
Reg := TRegistry.Create(KeyAccess);