Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ASSOCIATION D'UNE EXTENSION A UNE APPLICATION (EX: *.DOC = MS WORD)


Information sur la source

Catégorie :Shell Classé sous : associer, association, extension Niveau : Débutant Date de création : 16/09/2000 Vu : 8 677

Note :
7,71 / 10 - par 21 personnes
7,71 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

Description

Faire les déclaration suivantes dans un MODULE:

Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_LOCAL_MACHINE = &H80000002

Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hkey&, ByVal lpszSubKey$, lphKey&) As Long
Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hkey&, ByVal lpszSubKey$, ByVal fdwType&, ByVal lpszValue$, ByVal dwLength&) As Long

Public Const MAX_PATH = 256&
Public Const REG_SZ = 1
 

Source

  • Sub CréationAssociation()
  • Dim NomClef As String
  • Dim ValeurClef As String
  • Dim RetVal As Long
  • Dim ClefHandle As Long
  • NomClef = "Software" & NomLogiciel ' ATTENTION: il y a un "backslash" entre "Software" et Nomlogiciel (inverse de "/", mais ça ne s'affiche pas sur ce site !?)
  • ValeurClef = CheminEXE
  • RetVal = RegCreateKey(HKEY_LOCAL_MACHINE, NomClef, ClefHandle)
  • RetVal = RegSetValue(ClefHandle, "", REG_SZ, ValeurClef, 0&)
  • NomClef = NomLogiciel
  • ValeurClef = TypeFichier
  • RetVal = RegCreateKey(HKEY_CLASSES_ROOT, NomClef, ClefHandle)
  • RetVal = RegSetValue(ClefHandle, "", REG_SZ, ValeurClef, 0&)
  • NomClef = Extension
  • ValeurClef = NomLogiciel
  • RetVal = RegCreateKey(HKEY_CLASSES_ROOT, NomClef, ClefHandle)
  • RetVal = RegSetValue(ClefHandle, "", REG_SZ, ValeurClef, 0&)
  • NomClef = NomLogiciel
  • ValeurClef = CheminEXE & " ""%1"""
  • RetVal = RegCreateKey(HKEY_CLASSES_ROOT, NomClef, ClefHandle)
  • RetVal = RegSetValue(ClefHandle, "shellopencommand", REG_SZ, ValeurClef, MAX_PATH)
  • ValeurClef = CheminIcône & ",0"
  • RetVal = RegSetValue(ClefHandle, "DefaultIcon", REG_SZ, ValeurClef, MAX_PATH)
  • End Sub
Sub CréationAssociation()
    Dim NomClef As String
    Dim ValeurClef As String
    Dim RetVal As Long
    Dim ClefHandle As Long
    
    NomClef = "Software" & NomLogiciel ' ATTENTION: il y a un "backslash" entre "Software" et Nomlogiciel (inverse de "/", mais ça ne s'affiche pas sur ce site !?)
    ValeurClef = CheminEXE
    RetVal = RegCreateKey(HKEY_LOCAL_MACHINE, NomClef, ClefHandle)
    RetVal = RegSetValue(ClefHandle, "", REG_SZ, ValeurClef, 0&)
    
    NomClef = NomLogiciel
    ValeurClef = TypeFichier
    RetVal = RegCreateKey(HKEY_CLASSES_ROOT, NomClef, ClefHandle)
    RetVal = RegSetValue(ClefHandle, "", REG_SZ, ValeurClef, 0&)
    
    NomClef = Extension
    ValeurClef = NomLogiciel
    RetVal = RegCreateKey(HKEY_CLASSES_ROOT, NomClef, ClefHandle)
    RetVal = RegSetValue(ClefHandle, "", REG_SZ, ValeurClef, 0&)
    
    NomClef = NomLogiciel
    ValeurClef = CheminEXE & " ""%1"""
    RetVal = RegCreateKey(HKEY_CLASSES_ROOT, NomClef, ClefHandle)
    RetVal = RegSetValue(ClefHandle, "shellopencommand", REG_SZ, ValeurClef, MAX_PATH)
    ValeurClef = CheminIcône & ",0"
    RetVal = RegSetValue(ClefHandle, "DefaultIcon", REG_SZ, ValeurClef, MAX_PATH)

End Sub 

Conclusion

Les Variables à définir soi-même sont:

NomLogiciel: Exemple: "Mon logiciel"
CheminEXE: Exemple: "C:MonLogiciel.exe"
TypeFichier: Exemple: "Document Mon Logiciel"
Extension: Exemple: ".log"
CheminIcône: Exemple: "C:MonLogiciel.ico"

Et voilà ! Exécutez la fonction lors du (premier) lancement de votre application et le tour est joué.

Deux trucs:
- pour obtenir le chemin de l'exe, si vous distribuez vos applications, utilisez  la propriété "App.Path"
- pour connaître le chemin du fichier qui a ouvert votre application (double-clic sur un fichier don l'extension est celle définie ci-dessus), utilisez la variable système "Command()" (CheminFichier = Command()".
 

Commentaires et avis

signaler à un administrateur
Commentaire de devmax le 09/04/2002 22:32:15

bravo
rien dotre a dire tellement c bien

signaler à un administrateur
Commentaire de RollieTyler le 04/05/2002 23:13:44

Salut,
bon alors terrible ton code j'en ai besoin en plus c tres cool.
Par contre g un probleme, mon association ne se creer pas correctement.
je n'ai pas de msg d'erreur mais lorsque je verifie l'association dans l'explorateur windows, elle est incomplete, g juste l'icone, le note du logiciel et le nom du type de fichier mais j'ai pas le "ouvrir avec" si tu vois ce que je veux dire?
tiens voila mon code dit moi si g fais une connerie:
Sub CréationAssociation()
    Dim NomClef As String
    Dim ValeurClef As String
    Dim RetVal As Long
    Dim ClefHandle As Long
    
    NomClef = "Software/" & "Notepad" ' ATTENTION: il y a un "backslash" entre "Software" et Nomlogiciel (inverse de "/", mais ça ne s'affiche pas sur ce site !?)
    ValeurClef = "c:windows
otepad.exe"
    RetVal = RegCreateKey(HKEY_LOCAL_MACHINE, NomClef, ClefHandle)
    RetVal = RegSetValue(ClefHandle, "", REG_SZ, ValeurClef, 0&)
    
    NomClef = "Notepad"
    ValeurClef = "Fichier listing assembleur"
    RetVal = RegCreateKey(HKEY_CLASSES_ROOT, NomClef, ClefHandle)
    RetVal = RegSetValue(ClefHandle, "", REG_SZ, ValeurClef, 0&)
    
    NomClef = ".lst"
    ValeurClef = "Notepad"
    RetVal = RegCreateKey(HKEY_CLASSES_ROOT, NomClef, ClefHandle)
    RetVal = RegSetValue(ClefHandle, "", REG_SZ, ValeurClef, 0&)
    
    NomClef = "Notepad"
    ValeurClef = "c:windows
otepad.exe" & " ""%1"""
    RetVal = RegCreateKey(HKEY_CLASSES_ROOT, NomClef, ClefHandle)
    RetVal = RegSetValue(ClefHandle, "shell/open/command", REG_SZ, ValeurClef, MAX_PATH)
    ValeurClef = "c:assotest.ico" & ",0"
    RetVal = RegSetValue(ClefHandle, "DefaultIcon", REG_SZ, ValeurClef, MAX_PATH)

End Sub
Merqui
@+

signaler à un administrateur
Commentaire de RollieTyler le 04/05/2002 23:16:40

Encore moi :-)
je viens de voir que les anti slash "/" ne s'affichait pas, mais je les ai bien mis et g bien mis le "n" a notepad dans le premier ValeurClef
Bizarre...
Aidez-moi sVP!!!!

signaler à un administrateur
Commentaire de RollieTyler le 04/05/2002 23:41:09

cucu encore moi!!!!!!
NON c bon ca marche!!
j'avais mis les "/" a l'envers :-()-()=..??/
j'ai lu trop vite la phrase!!
Merci, super code!!

signaler à un administrateur
Commentaire de yoman64 le 08/06/2002 08:41:38

Kool

signaler à un administrateur
Commentaire de skram666 le 25/12/2002 12:55:30

Génial c ce que je voulais rajouter a mes applications merci

signaler à un administrateur
Commentaire de misterglacon le 23/03/2003 15:01:37

Il est terrible ce code !!!!

Est ce que je peut l'ajouter à mon site dan la rubrique "Boite à outils"
http://perso.wanadoo.fr/t-a-g/
Mon E-Mail : www.textureagogo@hotmail.com

Merci de me contacter au plus vite !

ET encore BRAVO !

signaler à un administrateur
Commentaire de ralf19b3 le 14/11/2003 21:18:44

A quand une source ou l'on pourat rentrer toute ces donner dans des textbox ca serait tete un peut pratique car moi la je galere a le faire marcher!! si quelqu'un pourer me filer une source avec ce programme je suis preuneur =) merci d'avance

signaler à un administrateur
Commentaire de yannd0307 le 19/10/2006 23:55:57

J'aurais aimé savoir s'il était possible de spécifier plusieurs extensions pour un même programme?
Merci d'avance.

signaler à un administrateur
Commentaire de Dowin le 29/10/2006 10:36:43

Pour VB.Net, si vous voulez faire des associations d'extension lors de l'installetion de votre application, vous pouvez créer un projet de déploiement et spécifier les associations en faisant :
- Clic-droit sur votre projet de déploiement dans l'explorateur de solution,
- Afficher,
- Types de fichiers,
- Clic-droit sur types de fichiers sur l'ordinateur cible,
- Ajouter un type de fichier,
- Donnez un nom, une commande (c'est à dire un .exe ou la sortie principale de votre application dans le dossier d'application), et l'extension (ou les extensions) sans mettre de "." (ex: doc et non .doc) et si vous le voulez un icone.

Sinon tapez "déploiement, gestion de fichiers" dans l'index de l'aide et vous devriez avoir de plus amples renseignements

PS: Ne pas oublier de générer la solution pour que les options de déploiement soient prises en compte.

signaler à un administrateur
Commentaire de bamadou2006 le 25/06/2007 16:05:00

bonjour vous avez un super code mais je n'y comprend rien.j'aimerai avoir une source plus pratique.
merci de bien vouloir m'aider

NB:"ASSOCIATION D'UNE EXTENSION A UNE APPLICATION (EX: *.DOC = MS WORD)" de jray.


***URGENT***

signaler à un administrateur
Commentaire de CreatorLine le 11/11/2007 18:04:55

Bonjour , sa fait plusieurs années que je développe des applications du style Word, et personnellement je n'était jamais arrivé à associé une extension a un programme.Biensur a part en utilisant le panneau de configuration windows. Je te dit Bravo pour t'on code

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Association d'extension a son application [ par ralf19b3 ] S@lut les programmeur je voudrait savoir si l'un de vous a une projet VB6 qui permet tout simplement d'associer une extension a son application?? G es Association Extension d'un fichier <-> Icone [ par Schum ] Voilà, j'aimerai que mon programme associe à un fichier son icône telle qu'elle est dans Windows.Mais je ne veux pas une liste non exaustive des icone resultat d'association a un extension [ par blindman ] une fois ceci fait,(l'association de mon prog à une extension de mon cru),comment faire pour que lorsque le prog ce lance via un de ces fichier le tex association d'une extension [ par blindman ] associer et creer une extension je sais le faire pas de souci ,mais mon probleme est de recuperer les informations d'un fichiers lorsque c'est ce dern association d'extension à un prog [ par attila46 ] J'ai réaliser un prog qui me stocke des info dans des fichiers avec une extension en .moe.Quand je fais un double clic sur un fichier .moe, j'arrive à Associer une icone a une nouvelle extension [ par DebvbJ ] SalutJe voudrais savoir comment je pourais faire pour associer une icône à tous les fichiers portants l'extension ".wpm"Je suppose qu'il y a un moyen Association extension -> prog sans registre [ par bainic ] Bonjour,Je souhaîte creer l'association d'une extension avec un exécutable sans utiliser les registres.Merci de votre aide. Associer une icone à un raccourci [ par PetitGognol ] PetitGognolSalutJe cherche à associer une icone personnalisée à mes raccourcis pendant l'installation de mon programme. Comment puis-je m'y prendre (p extension d'une base de données [ par kiloo ] bonjour,j'ai une base de données avec l'extension *.dbce n'est pas du paradox , ni du visual foxpro.est -que quelqu'un aurait une idée ? indice : lors Me taduire 1 ligne de javascript à VB svp... [ par Jin ] Quelqu'un serait-il traduire çà en VB : (c'est du javascript...)var toto = " test.tst"document.write("Extension : "+toto.substring(toto.lastIndexOf('.


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,34 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.