begin process at 2010 02 10 01:35:56
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > COMMENT ASSOCIER DES EXTENTIONS À SON PROGRAMME, AINSI QU'UN ICÔNE AUX FICHIERS D'EXTENTIONS DÉSIRÉES?

COMMENT ASSOCIER DES EXTENTIONS À SON PROGRAMME, AINSI QU'UN ICÔNE AUX FICHIERS D'EXTENTIONS DÉSIRÉES?


 Information sur la source

Note :
7,67 / 10 - par 9 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Niveau :Initié Date de création :18/02/2004 Date de mise à jour :19/02/2004 23:35:55 Vu :3 481

Auteur : gandalfkhorne

Ecrire un message privé
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

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

  • '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
'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.


 Sources du même auteur

FONCTION DE DECOUPE DE CHAINE, GRACE A INSTR
Source avec Zip Source avec une capture MODULE DE DECOUPAGE ELLIPTIQUE DE CONTROLS : TEXT, FORM, COM...
Source avec Zip Source avec une capture BASE DE GESTIONNAIRE DE FICHIER, A FINIR TRES SIMPLEMENT
Source avec Zip Source avec une capture EFFET POUR FORM, CHANGEMENT DE FOND, D'ICONE ET TITRE DEROUL...
Source avec Zip Source avec une capture EFFET SUR DES PICTUREBOX : CODE TRES SIMPLE, FLUIDE ET COMME...

 Sources de la même categorie

AFFICHAGE SOUS EXCEL DE LA LISTE DES ' DES GROUPES par djebbipgm
AFFECTATION D'UNE ICÔNE À UN DOSSIER DANS L'EXPLORATEUR par djebbipgm
Source avec Zip CREATION DE GADGET EN VB6 par djebbipgm
Source avec Zip Source avec une capture CAPTEUR DE HANDLE, DE TITRE, DE CLASS, DE POSITION DE TAILLE... par Sechaud
Source avec Zip Source avec une capture COULEUR DANS UN RICHTEXTBOX SANS MODIFIER SELSTART OU SELLEN... par Renfield

Commentaires et avis

Commentaire de azerty25 le 19/02/2004 07:00:47

Pk vous mettez des notes pareilles sans laisser de commentaire ?!

Commentaire de Cracker le 19/02/2004 10:01:33

Source très intéressante, je n'ai pas le temps de la tester mais ca faisait longtpemps que je cherchais a faire ça simplement !!
Par contre des commentaires aurait été les bienvenue !
Aller 8/10 !!!

Commentaire de Disicom le 19/02/2004 10:35:51

Ouai c'est clair, peux-tu mettre des commentaires ca serait sympa.

Merci

++

Disicom

Commentaire de sibi12 le 19/02/2004 16:46:44

Salut,

Je ne connaissait pas cette api...j'avait fait un code semblable il y un petit  temps et j'ai du passer par la commande dos assoc si je me souvient bien...

C'est beaucoup plus simple comme ça...

sinon belle source...les noms de variable et des fonctions sont bien explicite...ce code risque de servir a pas mal de monde

Dommage que la source ne soit pas "propre" et qu'il n'y a pas de commentaire...les long noms de variable reduise la lisibilité...(sourtout pour la fonction inserrer)

je mettrais un 10 pour le fond un 8 pour la forme donc 9 ;-)

@+

Commentaire de gandalfkhorne le 19/02/2004 23:28:27

Désolé je n'ai pas l'habitude de mettre des commentaires mais je vais m'en occuper de suite ;-)

Commentaire de gibozsec le 20/02/2004 01:38:18

En effet c'est très bien, j'avais besoin d'un truc comme ca pour un truc que j'avais fait il y a longtemps, je vais peut être le rajouté.

Il serait intéressant que tu ajoute le code pour récupéré les paramètres de la ligne de commande (pour savoir quel fichier a lancé l'application).

Commentaire de gandalfkhorne le 20/02/2004 10:57:00

Le seul paramétre te permettant de savoir quel fichier a été lancé avec, est la fonction Command qui te retourne l'adresse du fichier ouvert.

Commentaire de NHenry le 27/02/2004 16:35:11

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.

Commentaire de cmoapierre le 28/03/2004 21:01:18

ca marcheré mieux ak une source car la tu explike pa grand chose
Jattent une amélioration

Commentaire de clementpat le 26/12/2004 23:55:22

Voila ce que je cherche , merci a toi , je teste !

Commentaire de vienbv le 02/08/2006 03:18:37

Voila, ce que je voudrais chercher. Merci beaucoup

Commentaire de PaTaTe le 05/09/2007 18:09:30

Avoir l'exacte contraire (à savoir dissocier une extension d'un programme), ça aurait pu être sympa.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales