Bonjour,

Je suis en train de developper une application.
Je veux associer des icones à certains fichiers générés par cette application.

J'utilise :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
procedure TfrmMain.FormCreate(Sender: TObject);
var
  Reg: TRegistry;
const
  cMyExt1 = '.xcc';
  cMyFileType1 = 'ChefCuistot2 XportRecipe.FileType';
begin
  Path := ExtractFilepath(Application.ExeName);
 
  //---------------------------Debut Icones + extension
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CLASSES_ROOT;
    Reg.OpenKey(cMyExt1, True);
    Reg.WriteString('', cMyFileType1);
    Reg.CloseKey;
    Reg.OpenKey(cMyFileType1, True);
    Reg.WriteString('', cMyFileType1);
    Reg.CloseKey;
    Reg.OpenKey(cMyFileType1 + '\DefaultIcon', True);
    Reg.WriteString('', Path + 'cc2ui.dll,0');
    Reg.CloseKey;
    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil);
  finally
    Reg.Free;
  end;
end;
Ceci fonctionne parfaitement avec XP pro mais pas avec VISTA.

Note :
J'utilise déjà la même procédure pour un autre programme et ça fonctionne parfaitement sous Vista. (pour info : j'ai copié/collé la partie "association d'icone" d'un programme à l'autre...)

Dans les 2 programmes, les icônes sont des icones standard réalisées avec IconWorkshop - Certaines icones sont même utilisées dans les deux programmes (dans leurs dll respectives)


Dans la BDR de VISTA , j'ai exactement les mêmes clefs/valeurs que dans la BDR de XP

Sous Vista, le programme nécessite les droits d'admin (UAC.res dans le .DPR) . Tout fonctionne sauf l'association des fichiers.

Note :
D'autres fonctions qui font appel à la BDR de Vista fonctionnent normalement


Avez vous une idée SVP ?

merci