CLASSE .NET DE LECTURE/ÉCRITURE DANS LA BASE DE REGISTRE

cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 - 20 mars 2010 à 20:21
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011 - 1 sept. 2011 à 13:27
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51465-classe-net-de-lecture-ecriture-dans-la-base-de-registre

NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
1 sept. 2011 à 13:27
Mais encore ...
C'est légé "bof" comme critique quand la note est si sévère. Un petit dévellopement s'impose.
Merci d'avance.
HACKANDROID Messages postés 103 Date d'inscription mardi 12 juillet 2011 Statut Membre Dernière intervention 3 janvier 2013
30 août 2011 à 23:49
Bof!
mafieulemouton Messages postés 24 Date d'inscription lundi 30 juin 2008 Statut Membre Dernière intervention 26 janvier 2010
17 août 2010 à 23:16
"Chaque sous-répertoires doit être séparés par un double anti-slash - "\" - surtout pas un anti-slash seul - """

rq: Pour éviter les erreur, pourquoi ne pas systématiquement remplacer "" dans ta chaine d'appel par "\" (genre avec un regex)

Sinon ca m'a l'air bien intéressant, je testerais ça!
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
22 mars 2010 à 22:38
Voilà qui est fait.
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
22 mars 2010 à 19:12
J'y pense sérieusement bidouille007 mais j'aime bien avoir la main sur le résultat de l'erreur. Je vais donc devoir faire un pointeur sur fonction.
cs_PaulVanWalleghem Messages postés 2 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 22 mars 2010
22 mars 2010 à 18:24
merci de la réponse
Paul
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
22 mars 2010 à 18:11
PaulVanWalleghem l'avantage de cette classe est qu'elle améliore l'utilisation et la lisibilité. En gros tu fais en une seul ligne ce qu'il faut faire en cinq grâce à l'objet Registry.

Pour connaitre le type d'un fichier, voici un bout de code avec ma classe. Il regarde les fichiers AVI.

Dim Reg As Registre
Dim MonExtention As String = ".avi"

Dim ContentType As String = Reg.ReadValue(Registre.RegisterKeys.HKCR, MonExtention , "Content Type", "")
Dim PerceivedType As String = Reg.ReadValue(Registre.RegisterKeys.HKCR, MonExtention , "PerceivedType", "")

MsgBox(ContentType & " - " & PerceivedType)

IMPORTANT: Si tu es sous XP, pas de souci. Sous 7/Vista, il y a une étape de plus.
Il faut écrire ceci dans le manifeste (fichier app.manifest pour VB 2008) :
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>

<defaultAssemblyRequest permissionSetReference="Custom" />





</security>

Les deux lignes importantes sont :
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
et
cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 1
22 mars 2010 à 13:04
en mettant le try dans la classe ca evitait d'avoir a le faire dans le code du programme et puis comme c'est à chaque fois, y a pas moyen d'ajouter cela à ta classe ?
cs_PaulVanWalleghem Messages postés 2 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 22 mars 2010
22 mars 2010 à 11:10
Bien le bonjour!

Je ne suis pas un expert en VB.NET. Mais quel est l'avantage de cette classe par rapport à l'objet "My.Computer.Registry" ?

Enfin, si je peux me permettre une autre question. Je cherche à lire la base de registre pour connaître le type d'un fichier sur la base de son extension. Quelle clef de registre dois-je utiliser ?

D'avance, merci beaucoup!
Avec mes sincères salutations,
PoloAroulettes
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
21 mars 2010 à 12:24
C'est vrai, ça me paraissait tellement évidement que je n'y ai pas pensé. Je vais le préciser.

Merci.
cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 1
21 mars 2010 à 00:01
la raison et qu'il faut pour ce genre d'opération mettre un try systématiquement au risque d'avoir une exception non gérée et donc planté le code.

Que ce soit la lecture et/ou l'écriture

pour dire ton exemple met un try d'office.

Enfin je dis ca mais c'est du très bon code.
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
20 mars 2010 à 20:50
C'est un choix de ma part.

Comme vous pouvez le voir toutes les fonctions retournent déjà quelques choses. Il faudra donc ajouter un argument "ByRef" pour avoir un retour supplémentaire.

Ensuite il faudra tester chaque appel à la base de registre. Si il y a un seul appel ça vaut le coup, mais au delà, ce n'est plus intéressant. C'est ce que j'ai pensé.

Après s'il y a des raisons que je vois pas, je veux bien être éclairé.
cs_bidouille007 Messages postés 257 Date d'inscription jeudi 11 septembre 2008 Statut Membre Dernière intervention 22 décembre 2012 1
20 mars 2010 à 20:21
bonjour

intéressant mais pourquoi ne pas avoir inclus le try dans la classe ? cela aurait alléger le code proprement dit.

Les fonctions auraient renvoyer un code pour dire OK ou pas
Rejoignez-nous