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 :
Ceci fonctionne parfaitement avec XP pro mais pas avec VISTA.
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;
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
Partager