Créer un dossier puis en modifier l'icône

Résolu
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 - 17 août 2005 à 15:42
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 - 17 août 2005 à 20:53
Salut à tous !

Une petite chose m'embête depuis quelques temps : je souhaite modifier l'icône d'un dossier créé à l'aide la fonction MkDir. Je crée donc un fichier Desktop.ini de la manière suivante :

'<-----------------------------------------------

Private Declare Function ATTRIBUTS Lib "kernel32"
Alias "SetFileAttributesA" ( _
ByVal lpFileName As String, _
ByVal dwFileAttributes As Long) As Long

Sub Dossier()

MkDir sDossier
Open sDossier & "\Desktop.ini" For Output As #1
Print #1, "[.ShellClassInfo]" & vbCrLf & _
"IconFile=" & sChemin & "Dossiers.ico" & _
vbCrLf & "IconIndex=0"
Close #1
'Attributs : caché (&H2), système (&H4)
ATTRIBUTS sDossier & "\desktop.ini", &H2 Or &H4
End Sub

'<-----------------------------------------------

sDossier désigne l'adresse du dossier créé.
IconFile=0 car c'est l'index de l'icône dans le fichier .ico

Ayant fait tout cela... eh bien mon dossier ne change pas d'icône javascript:Insert_Emoticon('/imgs2/smile_shock.gif');

Quelqu'un a-t-il une idée pour ça ?
Cacophrène

11 réponses

Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
17 août 2005 à 20:47
Salut !

Voilà le message pour la solution.

Private Sub Ecrire(sDossier As String)
MkDir sDossier
Open sDossier & "\Desktop.ini" For Output As #1
Print #1, "[.ShellClassInfo]" & vbCrLf & _
"IconFile=" & sChemin & "Dossier.ico" & _
vbCrLf & "IconIndex=0"
Close
SetAttr sDossier, vbSystem
SetAttr sDossier & "\Desktop.ini", vbSystem + vbHidden
End Sub

Donc : le DOSSIER dont on veut modifier l'icône doit être en vbSystem, chose que je ne faisais pas...
3
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
17 août 2005 à 15:45
Ah, souci avec Opera... plus de sauts de lignes !
0
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
17 août 2005 à 15:45
Salut à tous !

Une petite chose m'embête depuis quelques temps : je souhaite modifier l'icône d'un dossier créé à l'aide la fonction MkDir. Je crée donc un fichier Desktop.ini de la manière suivante :

'<-----------------------------------------------

Private Declare Function ATTRIBUTS Lib "kernel32"
Alias "SetFileAttributesA" ( _
ByVal lpFileName As String, _
ByVal dwFileAttributes As Long) As Long

Sub Dossier()

MkDir sDossier
Open sDossier & "\Desktop.ini" For Output As #1
Print #1, "[.ShellClassInfo]" & vbCrLf & _
"IconFile=" & sChemin & "Dossiers.ico" & _
vbCrLf & "IconIndex=0"
Close #1
'Attributs : caché (&H2), système (&H4)
ATTRIBUTS sDossier & "\desktop.ini", &H2 Or &H4
End Sub

'<-----------------------------------------------

sDossier désigne l'adresse du dossier créé.
IconFile=0 car c'est l'index de l'icône dans le fichier .ico

Ayant fait tout cela... eh bien mon dossier ne change pas d'icône javascript:Insert_Emoticon('/imgs2/smile_shock.gif');

Quelqu'un a-t-il une idée pour ça ?
Cacophrène
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 août 2005 à 16:33
Même après redémarrage de Windows ? Cela peut venir du cache des icônes par exemple.

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
17 août 2005 à 17:43
Salut Darksidious !

D'abord merci pour l'intérêt que tu portes à ma question.

J'ai redémarré l'ordinateur après avoir créé le dossier et le fichier ini... rien ne change après, mon dossier n'a toujours pas l'icône voulue. J'ai tenté d'appliquer le programme à un dossier qui existait déjà (donc pas de MkDir), même résultat...

Cordialement,
Cacophrène
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 août 2005 à 17:57
Bon ben désolé alors, je ne vois pas d'où ca peut venir !

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
17 août 2005 à 20:11
Re !

J'ai essayé l'API WritePrivateProfileString histoire de voir si ça changeait quelque chose... Aucun résultat.

Juste une chose Darksidious : si tu essaies mon code sur ton pc, est-ce que ça marche ? (je me dis que c'est peut-être mon pc qui est dingue, je finirais bien par le menacer avec la même hache que mon image...)

Merci d'avance,
Cacophrène
0
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
17 août 2005 à 20:25
PS : J'oubliais ci-dessus. Je suis allé voir la source de MasterHack (http://www.vbfrance.com/code.aspx?ID=25390) qui crée un ini comme moi... mais sur des dossiers existants, et ça marche ! Alors misère, je n'y comprends rien.

Cordialement,
Cacophrène
0
Cacophrene Messages postés 251 Date d'inscription lundi 29 mars 2004 Statut Membre Dernière intervention 4 mars 2008 1
17 août 2005 à 20:43
Enfin !!!

Je viens de trouver...
Je dois ajouter Hide et Show successivement, et ça marche... Serait-ce donc un problème de rafraîchissement quelconque ?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 août 2005 à 20:44
Non ca ne marche pas chez moi non plus.


Note : j'ai réussi à le faire marcher en manuel uniquement !


DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
17 août 2005 à 20:53
Exact, bien vu !



C'est cool ce petit code là, ca peut faire un petit utilitaire bien sympa !

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
0
Rejoignez-nous