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 |
Partager