J'essaie d'ajouter un fichier exe avec une extension de fichier. Le code ci-dessous fonctionne bien avec XP, mais renvoie une erreur dans Win Vista/7.Delphi - Comment changer les extensions de fichiers par défaut dans Vista/Win 7
var
reg: TRegistry;
begin
reg := TRegistry.Create;
try
reg.RootKey := HKEY_CLASSES_ROOT;
reg.OpenKey('.' + ExtName, True);
reg.WriteString('', ExtName + 'file'); //error: Failed to set data for ''
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);
Comment puis-je accomplir la même chose avec Vista/7?
C'est tout. Je n'exécutais pas l'application avec un statut élevé. – croceldon
Une alternative consiste à écrire dans la clé correspondante dans HKey_Current_User. Vous n'avez alors pas besoin de privilèges spéciaux et vous n'interférez pas avec les associations de fichiers d'autres utilisateurs. –