Comment associer des extentions à son programme, ainsi qu'un icône aux fichiers d'extentions désirées?

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 307 fois - Téléchargée 28 fois

Contenu du snippet

J'ai pas trouver une fonction aussi simple que celle que j'ai créer sur le site, de plus elle est très facile à utiliser ;-) .

Source / Exemple :


'Déclarations des API necessaires : 
Private Declare Sub SHChangeNotify Lib "shell32.dll" ( _ 
ByVal wEventId As Long, _ 
ByVal uFlags As Long, _ 
dwItem1 As Any, _ 
dwItem2 As Any) 
'Déclarations des constantes nécessaires : 
Private Const SHCNE_ASSOCCHANGED = &H8000000 
Private Const SHCNF_IDLIST = &H0& 

Private Function Associer(AdApp As String, AdIcon As String, Extention As Variant, NomDuFichier As String) As Boolean 
    
    On Error GoTo F 'Si une erreur subsiste aller à la ligne F
    
    Set WshShell = CreateObject("Wscript.Shell") 'Création d'un object WshShell

    For v = LBound(Extention, 1) To UBound(Extention, 1) 'V variant de l'index le plus bas de la matrice Extention jusqu'a son plus haut niveau
        WshShell.RegWrite "HKEY_CLASSES_ROOT\." & Extention(v) & "\", NomDuFichier, "REG_SZ" 'Association de l'extention a un type "NomDuFichier"
    Next v 
    
    AdSp = "HKEY_CLASSES_ROOT\" & NomDuFichier & "\" 'Simplification basique
    WshShell.RegWrite AdSp, NomDuFichier & " General", "REG_SZ"' Declaration de l'emplacement spécifique 
    WshShell.RegWrite AdSp & "DefaultIcon\", AdIcon, "REG_SZ" 'Permet de mettre l'adresse de l'icone à asssocier
    WshShell.RegWrite AdSp & "Shell\open\command\", Chr(34) & AdApp & Chr(34) & " %1", "REG_SZ" 'Indique le chemin de lexe a ouvrir
    SHChangeNotify SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0 'Reinitialise la base dicone par defaut de windows
    Associer = True 'Fonction a bien fonctionner donc Associer est vrai
    
F: 

End Function 

Private Sub Form_Load() 
    Insérer 
End Sub 

Sub Insérer() 
    ExtentionAMettreEnRelation = Array("kh1", "kh2", "kh4") 'Matrice des extentions à associer
    CheminDeLAppli$ = "d:\sp\Khorne.exe" 
    CheminDeLicone$ = "d:\sp\Khorne.ico" 
    NomDuGenreDeFichier$ = "Image Cryptée Spécifique" 
    If Associer(CheminDeLAppli$, CheminDeLicone$, ExtentionAMettreEnRelation, NomDuGenreDeFichier$) Then MsgBox "Changement réussi.", vbInformation, "Super ça a marché!!!" Else: If (MsgBox("Ca n'a pas marché car l'un des paramétre insérer est mauvais.", vbCritical + vbYesNo, "Erreur") = vbYes) Then Insérer 'Si ca a pas marché on demande une réitération de l'opération
End Sub

Conclusion :


Voilà c tout. Un petit truc bien utile quand son application utilise des fichier spécifique pour travailler avec.

A voir également

Ajouter un commentaire Commentaires
Messages postés
2107
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
19 février 2021
2
Avoir l'exacte contraire (à savoir dissocier une extension d'un programme), ça aurait pu être sympa.
Messages postés
14
Date d'inscription
lundi 1 novembre 2004
Statut
Membre
Dernière intervention
17 mars 2010

Voila, ce que je voudrais chercher. Merci beaucoup
Messages postés
406
Date d'inscription
lundi 2 décembre 2002
Statut
Membre
Dernière intervention
25 janvier 2014

Voila ce que je cherche , merci a toi , je teste !
Messages postés
46
Date d'inscription
dimanche 14 décembre 2003
Statut
Membre
Dernière intervention
8 août 2005

ca marcheré mieux ak une source car la tu explike pa grand chose
Jattent une amélioration
Messages postés
14781
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 avril 2021
154
Moi, j'utilise un .bas que j'ai récupérer sur vbasic.org. Accès au registre, regkeys qu'il s'appel je croi.
Afficher les 12 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.