begin process at 2012 02 13 00:18:22
  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 :4 282

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

Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip Source avec une capture JEUX DE VERITÉ ET DE FIDELITÉ par billatosco
Source avec Zip IMAGELOARDER par vkitumaini
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN CALENDRIER DE POCHE par Le Pivert
Source avec Zip RECHERCHE D'UN ENREGISTREMENT DANS UNE DATATABLE ET POSITION... par erdna

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 administrateur CS

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 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

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 : 1,170 sec (4)

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