Hello,
Je vous livre un bout de code en windev (à partir de la version 11), pour associer une extension à une de vos applications, ainsi que le code qui l'enlève de la base de registre

Bon Développement

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
// variable locale
sExtension est une chaîne = ".ecc"
sNom_Application est une chaîne = "ecconsulting"
sApplication_Extension est une chaîne = ".exe"
sApplication_Descriptif est une chaîne = "Application pour la gestion des sauvegardes"
sPath_Application est une chaîne = "D:\TESTS"
sPath_HKCR est une chaîne = "HKEY_CLASSES_ROOT"
sPath_HKCU est une chaîne = "HKEY_CURRENT_USER"
sPath_HKLM est une chaîne = "HKEY_LOCAL_MACHINE"
 
// on va chercher et stocker l'extension
SI RegistreExiste(sPath_HKCR+"\"+sExtension) = Faux ALORS
	//
	SI EnModeTest() ALORS Trace("Va créer la clé "+sPath_HKCR+"\"+sExtension)
	//
	//
	//HKCR - HKEY_CLASSE_ROOT - Racine des Clés de Classes
	//|
	//+-- .ext1
	//|     |
	//|     +-- (par défaut) = MyApp
	//|
	//+-- .ext2
	//|     |
	//|     +-- (par défaut) = MyApp
	//|
	//+-- Application
	//	|
	//	+-- (par défaut) = "Application pour la gestion des sauvegardes"
	//	|
	//	+-- DefaultIcon
	//	|     |
	//	|     +-- (par défaut) = "D:\Sauvegardes\ecc.exe,1"
	//	|
	//	+-- Shell
	//			|
	//			+-- open
	//			|
	//			+-- command = "D:\Sauvegardes\ecc.exe,1" "%1"
 
	//
	// **************************************************************************************
	// SECTION HKEY_CLASSES_ROOT
	//
	// A ce stade vous pouvez inclure autant d'extension que vous le souhaitez,
	// il faut simplement refair ela même manipulation
	// (voir le dessin de l'architecture de la bse de registre ci-dessus
	// **************************************************************************************
	// on va créer la clé de registre pour l'extension voulue
	SI PAS RegistreCréeClé(sPath_HKCR+"\"+sExtension) ALORS
		// info, erreur lors de la création de la clé
		SI EnModeTest() ALORS Trace("Erreur lors de la création de la clé ["+sPath_HKCR+"\"+sExtension+"]")
	SINON
		// Création de la clé réussie
		SI EnModeTest() ALORS Trace("Création de l'extension pour la clé ["+sPath_HKCR+"\"+sExtension+"]")
		// --------------------------------------------------------------------------------
		// Par défaut, on met l'application dans l'extension
		// --------------------------------------------------------------------------------
		SI PAS RegistreEcrit(sPath_HKCR+"\"+sExtension,"",sNom_Application) ALORS
			// info, erreur lors de l'écriture de la clé
			SI EnModeTest() ALORS Trace("Erreur lors de la modification de la clé ["+sPath_HKCR+"\"+sExtension+"] pour la valeur par défaut (par défaut) = "+sNom_Application)
		SINON
			// la clé est écrite
			SI EnModeTest() ALORS Trace("Modification de l'extension pour la clé ["+sPath_HKCR+"\"+sExtension+"] pour la valeur par défaut (par défaut) = "+sNom_Application)
		FIN
		// --------------------------------------------------------------------------------
		// création des références par defaut pour les fichiers ayant l'exrension souhaitée
		// --------------------------------------------------------------------------------
		SI PAS RegistreEcrit(sPath_HKCR+"\"+sExtension,"Content Type","Fichier de sauvegardes des applications") ALORS
			// info, erreur lors de la création de la clé
			SI EnModeTest() ALORS Trace("Erreur lors de la création de la clé ["+sPath_HKCR+"\"+sExtension+"] - Content Type")
		SINON
			// info, création de la clé réussie
			SI EnModeTest() ALORS Trace("Création de la clé ["+sPath_HKCR+"\"+sExtension+"] - Content Type")
		FIN
	FIN
	//
	// --------------------------------------------------------------------------------
	// DECLARATION DE L'APPLICATION DANS LA BdR
	// --------------------------------------------------------------------------------
	SI PAS RegistreCréeClé(sPath_HKCR+"\"+sNom_Application) ALORS
		// info, erreur lors de la création d ela clé
		SI EnModeTest() ALORS Trace("Erreur lors de la création de la clé "+sPath_HKCR+"\"+sNom_Application)
	SINON
		// info, modification de la clé
		SI EnModeTest() ALORS Trace("Création de la clé ["+sPath_HKCR+"\"+sExtension+"] - Content Type")
		//
		// --------------------------------------------------------------------------------
		// Création des valeurs de la clé sNom_Application
		// --------------------------------------------------------------------------------
		// valeur par défaut, informations sur le fichier
		SI PAS RegistreEcrit(sPath_HKCR+"\"+sNom_Application,"",sApplication_Descriptif) ALORS
			// info, erreur lors de l'écriture de la clé
			SI EnModeTest() ALORS Trace("Erreur lors de la modification de la clé ["+sPath_HKCR+"\"+sNom_Application+"] pour la valeur par défaut (par défaut) = "+sApplication_Descriptif)
		SINON
			// la clé est écrite
			SI EnModeTest() ALORS Trace("Modification de l'extension pour la clé ["+sPath_HKCR+"\"+sNom_Application+"] pour la valeur par défaut (par défaut) = "+sApplication_Descriptif)
		FIN
		//
		// Valeur par défaut pour l'icone associé à l'application		
		SI PAS RegistreCréeClé(sPath_HKCR+"\"+sNom_Application+"\DefaultIcon") ALORS
			// info, erreur lors de la création de la clé DefautIcon
			SI EnModeTest() ALORS Trace("Erreur lors de la création de la clé "+sPath_HKCR+"\"+sNom_Application+"\DefaultIcon")
		SINON
			// info, Création de la clé DefaultIcon
			SI EnModeTest() ALORS Trace("Création de la clé "+sPath_HKCR+"\"+sNom_Application+"\DefaultIcon")
			//
			// Par défaut, le fichier associé à l'icone
			SI PAS RegistreEcrit(sPath_HKCR+"\"+sNom_Application,"DefaultIcone",sPath_Application+"\"+sNom_Application+sApplication_Extension+",1") ALORS
				// info, erreur lors de l'écriture de la clé
				SI EnModeTest() ALORS Trace("Erreur lors de la modification de la clé "+sPath_HKCR+"\"+sNom_Application+"\DefaultIcone] pour la valeur par défaut (par défaut) = "+sPath_Application+"\"+sNom_Application+sApplication_Extension+",1")
			SINON
				// la clé est écrite
				SI EnModeTest() ALORS Trace("Modification de l'icone pour la clé "+sPath_HKCR+"\"+sNom_Application+"\DefaultIcone] pour la valeur par défaut (par défaut) = "+sPath_Application+"\"+sNom_Application+sApplication_Extension+",1")
			FIN
 
			// lIGNE DE COMMANDE APPLICABLE
			SI PAS RegistreCréeClé(sPath_HKCR+"\"+sNom_Application+"\Shell") ALORS
				// info, erreur lors de l'écriture de la clé
				SI EnModeTest() ALORS Trace("Erreur lors de la création de la clé "+sPath_HKCR+"\"+sNom_Application+"\Shell ")
			SINON
				// la clé est écrite
				SI EnModeTest() ALORS Trace("Création de la clé "+sPath_HKCR+"\"+sNom_Application+"\Shell ")
				//
				// Section Open et ligne de commande
				SI PAS RegistreCréeClé(sPath_HKCR+"\"+sNom_Application+"\Shell\Open") ALORS
					// info, erreur lors de l'écriture de la clé
					SI EnModeTest() ALORS Trace("Erreur lors de la création de la clé "+sPath_HKCR+"\"+sNom_Application+"\Shell\Open")
				SINON
					// la clé est écrite
					SI EnModeTest() ALORS Trace("Création de la clé  "+sPath_HKCR+"\"+sNom_Application+"\Shell\Open")
					// Section Open et ligne de commande
					SI PAS RegistreCréeClé(sPath_HKCR+"\"+sNom_Application+"\Shell\Open\Command") ALORS
						// info, erreur lors de l'écriture de la clé
						SI EnModeTest() ALORS Trace("Erreur lors de la création de la clé "+sPath_HKCR+"\"+sNom_Application+"\Shell\Open\Command ")
					SINON
						// la clé est écrite
						SI EnModeTest() ALORS Trace("Création de la clé "+sPath_HKCR+"\"+sNom_Application+"\Shell\Open\Command")
						// ecriture de la commande
						SI PAS RegistreEcrit(sPath_HKCR+"\"+sNom_Application+"\Shell\Open\Command","",sPath_Application+"\"+sNom_Application+sApplication_Extension+" %1") ALORS
							// info, erreur lors de l'écriture de la clé
							SI EnModeTest() ALORS Trace("Erreur lors de la modification de la clé "+sPath_HKCR+"\"+sNom_Application+"\Shell\Open\Command\ pour la valeur par défaut (par défaut) = "+sPath_Application+"\"+sNom_Application+sApplication_Extension+" %1")
						SINON
							// la clé est écrite
							SI EnModeTest() ALORS Trace("Modification de l'icone pour la clé "+sPath_HKCR+"\"+sNom_Application+"\Shell\Open\Command\ pour la valeur par défaut (par défaut) = "+sPath_Application+"\"+sNom_Application+sApplication_Extension+" %1")
						FIN
					FIN		
				FIN		
			FIN
		FIN
	FIN
 
SINON
	// la clé existe
	// info, erreur lors de la création d ela clé
	SI EnModeTest() ALORS Trace("LA CLE ["+sPath_HKCR+"\"+sExtension+"] EST TROUVEE DANS LA BASE DE REGISTRE")
	//
	SI OuiNon(Non,"Voulez-vous supprimer la référence de l'extension "+sExtension+"?") = Oui ALORS
		// on supprime les clé
		SI PAS RegistreSupprimeClé(sPath_HKCR+"\"+sExtension) ALORS
			// info, erreur lors de la création d ela clé
			SI EnModeTest() ALORS Trace("Erreur lors de la suppression de la clé ["+sPath_HKCR+"\"+sExtension+"]")
		FIN
		//
		SI PAS RegistreSupprimeClé(sPath_HKCR+"\"+sNom_Application) ALORS
			// info, erreur lors de la création d ela clé
			SI EnModeTest() ALORS Trace("Erreur lors de la suppression de la clé ["+sPath_HKCR+"\"+sNom_Application+"]")
		FIN
		// ----------------------------------------------------
		// SECTION HKEY_CLASSES_ROOT
		// ----------------------------------------------------
		// suppression de la classe 
		SI PAS RegistreSupprimeClé(sPath_HKCU+"\Software\Classes"+"\"+sExtension) ALORS
			// info, erreur lors de la création d ela clé
			SI EnModeTest() ALORS Trace("Erreur lors de la suppression de la clé "+sPath_HKCU+"\Software\Classes"+"\"+sExtension)
		FIN
		//
 
 
 
		// déclaration de l'extension avec l'application
		SI PAS RegistreSupprimeClé(sPath_HKCU+"\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\"+sExtension) ALORS
			// info, erreur lors de la création d ela clé
			SI EnModeTest() ALORS Trace("Erreur lors de la suppression de la clé "+sPath_HKCU+"\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\"+sExtension)
		FIN
		//
		// ----------------------------------------------------
		// SECTION HKEY_LOCAL_MACHINE
		// ----------------------------------------------------
		// création de la classe
		SI PAS RegistreSupprimeClé(sPath_HKLM+"\Software\Classes"+"\"+sExtension) ALORS
			// info, erreur lors de la création d ela clé
			SI EnModeTest() ALORS Trace("Erreur lors de la suppression de la clé "+sPath_HKLM+"\Software\Classes"+"\"+sExtension)
		FIN
	FIN
FIN