Des outils pour travailler avec la base de registre

Soyez le premier à donner votre avis sur cette source.

Vue 7 685 fois - Téléchargée 933 fois

Description

AZERTY25 reherchait quelque chose comme cela

Plusieurs fonctions et routines au sein d'une classe pour travailler avec la base de registre :

DeleteFolder(ByVal Path As String)
Supprime un répertoire

DeleteKey(ByVal Path As String, ByVal Key As String)
Supprime une clée dans un répertoire

ValuePath(ByVal Path As String) As Long
(Interne mais peut etre appelé)
Transforme le nom alphabétique d'une racine en valeur pour API

StringPath(ByVal hKey As Long, ByVal Path) As String
(Interne mais peut etre appelé)
Transforme une chaîne de chemin en lui rajoutant au début la racine en fonction de la valeur de clée de racine

ReadKeyValue(ByVal Path As String, ByVal Key As String) As String
Lit la valeur d'une clée dans un répertoire

WriteKeyValue(ByVal Path As String, ByVal Key As String, ByVal Value As String)
Ecrit une clée et sa valeur dans un répertoire

ReadSubFolders(ByVal Path As String) As String()
Dresse dans un tableau de chaînes les sous répertoires d'un répertoire donné

CountFolders(ByVal Path As String) As Double
Compte le nombre de sous répertoires dans un répertoire (pas récurssif)

ReadKeyListValue(ByVal Path As String) As String()

CountValues(ByVal Path As String) As Double
Compte le nombre de clées dans un répertoire
Dresse dans un tableau de chaînes les différents nom de clée d'un répertoire donné

Conclusion :


Bon ammusement

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_azerty25
Messages postés
1115
Date d'inscription
jeudi 19 décembre 2002
Statut
Membre
Dernière intervention
6 mai 2007

Ta remarque non plus ;-)
Dragonmaster
Messages postés
127
Date d'inscription
vendredi 20 août 2004
Statut
Membre
Dernière intervention
3 avril 2009

Je ne pense pas que celà vaut le niveau "expert" !
cs_viran
Messages postés
104
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
31 décembre 2006

Je n'arrive pas a lire els fichiers comment je peux faire pour les lire?
philoo91
Messages postés
46
Date d'inscription
vendredi 14 février 2003
Statut
Membre
Dernière intervention
13 juillet 2009

Salut,
CountValue utilise ReadKeyListValue(Path)
où path est une chaine.
Si celle ci est nulle la fonction ReadKeyListValue retournera un tableau
vide.
Vue que au retour de ReadKeyListValue on utilise justement l'instruction ubound, si le tableau est vide ça plante.
Donc la solution est de faire ainsi :

Public Function ReadKeyListValue(ByVal Path As String) As String()
Dim RootKey As Long
Dim Ret As Long
Dim RetData As Long
Dim hKey As Long
Dim Compteur As Long
Dim sName As String
Dim sData As String
Dim List() As String

ReDim Preserve List(0)
ReadKeyListValue = List
RootKey = ValuePath(Path)

If RootKey = 0 Then Exit Function

If RegOpenKey(RootKey, StringPath(RootKey, Path), hKey) = 0 Then
sName = Space(StringLenth)
Ret = StringLenth
Compteur = 0
While RegEnumValue(hKey, Compteur, sName, Ret, 0, ByVal 0&, ByVal sData, RetData) <> ERROR_NO_MORE_ITEMS
ReDim Preserve List(Compteur)
List(UBound(List)) = Trim(Left(sName, Ret))
Compteur = Compteur + 1
sName = Space(StringLenth)
sData = Space(StringLenth)
Ret = StringLenth
RetData = StringLenth
Wend
RegCloseKey hKey
End If
ReadKeyListValue = List
End Function
Public Function CountValues(ByVal Path As String) As Double
CountValues = UBound(ReadKeyListValue(Path))
End Function
shinkan
Messages postés
14
Date d'inscription
dimanche 30 novembre 2003
Statut
Membre
Dernière intervention
14 avril 2005

GROS PROBLEME, mais cette fois ci j'y suis pour rien.
Lors de l'appel de la fonction "CountValues" je reçois le message d'erreur suivant :

Run Time Error '9' :
Subscript Out Of Range

Je n'obtient pas ce message si je passe une chaine de caractere de 64 caractères à la fonction, en revanche, dès que je lui en passe plus, j'ai ce message d'erreur ... et je ne vois pas comment faire pour me sauver de cette situation désatreuse pour mon projet ...

Merci d'avance aux masses qui réussiront à trouver comment faire.

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.