Association d'une extension a une application (ex: *.doc = ms word)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 201 fois - Téléchargée 68 fois

Contenu du snippet

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 / Exemple :


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()".

A voir également

Ajouter un commentaire Commentaires
Messages postés
10
Date d'inscription
dimanche 8 avril 2007
Statut
Membre
Dernière intervention
8 avril 2007

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
Messages postés
1
Date d'inscription
lundi 3 octobre 2005
Statut
Membre
Dernière intervention
25 juin 2007

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***
Messages postés
11
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
15 avril 2008

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.
Messages postés
35
Date d'inscription
dimanche 3 novembre 2013
Statut
Membre
Dernière intervention
27 mai 2014
>
Messages postés
11
Date d'inscription
mardi 5 octobre 2004
Statut
Membre
Dernière intervention
15 avril 2008

Bonjour, j'utilise VB.Net et j'utilise Visual Studio 2010. J'arrive à publier mon appication à l'aide du déploiement d'application ClickOnce.
Mais je voudrais asscoier une extension de fichier à mon application.
Dans Projets/PorpirétésApplication/Publier/Option de publication
La boite de dialogue option de publication s'affiche
Dans le volet "Associer des fichiers" il y un datagridview à 4 colonnes:
Extension, description; ProgID et Icône
dans mon exemple j'ai mis
extension: amj
Description: test
ProgID: 1
Icone: ?
Au niveau du Icône je ne sais quoi mettre.
J'obtien une erreur si je laisse vide ou si j'ecris par exemple "aaa" lorsque je clic sur Publier maintenant

Si quelqu'un peut m'aider cela m'aiderait beaucoup, car je suis vraiment bloquer à ce niveau de mon application
Merci d'avance
Messages postés
22
Date d'inscription
dimanche 18 septembre 2005
Statut
Membre
Dernière intervention
7 novembre 2007

J'aurais aimé savoir s'il était possible de spécifier plusieurs extensions pour un même programme?
Merci d'avance.
Afficher les 18 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.