I am trying to add register exe file with file extension. The code below works fine with XP, but causes an error in Win Vista / 7.
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey('.' + ExtName, True);
reg.WriteString('', ExtName + 'file');
reg.CloseKey;
reg.CreateKey(ExtName + 'file');
reg.OpenKey(ExtName + 'file\DefaultIcon', True);
reg.WriteString('', AppName + ',0');
reg.CloseKey;
reg.OpenKey(ExtName + 'file\shell\open\command', True);
reg.WriteString('', AppName + ' "%1"');
reg.CloseKey;
finally
reg.Free;
end;
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
How can I accomplish the same task in Vista / 7?
source
share