[VB.net] Base de registre

Résolu
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006 - 20 avril 2006 à 15:04
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 22 avril 2006 à 11:30
Bonjour,
je dois faire un module qui "joue" avec la base de registre. J'ai trouvé un exemple qui marche bien avec les registre qui sont des string (Type "REG_SZ"), mais si je veux la valeur d'une clé de type "REG_DWORD" cela ne fonctionne pas...



Public
Function GetString(
ByVal hKey
As
String,
ByVal strPath
As
String,
ByVal keyName
As
String)

Dim val
As
Object
Try
Dim pRegKey
As RegistryKey

Select
Case hKey 'Pour savoir ou la clé est

Case "HKEY_CLASSES_ROOT" : pRegKey = Registry.ClassesRoot

Case "HKEY_CURRENT_CONFIG" : pRegKey = Registry.CurrentConfig

Case "HKEY_CURRENT_USER" : pRegKey = Registry.CurrentUser

Case "HKEY_DYN_DATA" : pRegKey = Registry.DynData

Case "HKEY_LOCAL_MACHINE" : pRegKey = Registry.LocalMachine

Case "HKEY_PERFORMANCE_DATA" : pRegKey = Registry.PerformanceData

Case "HKEY_USERS" : pRegKey = Registry.Users

End
Select
pRegKey = pRegKey.OpenSubKey(strPath)
'Ouvrir la clé
val = pRegKey.GetValue(keyName) 'Lire la valeur

Catch ex
As Exception
val = ""

End
Try
Return val

End
Function

Donc si quelqu'un peut m'aider pour créer une fonction qui fonctionnerais avec le type DWORD sa serait vraiment apprécié!!

Bonnne journée!!

4 réponses

cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
20 avril 2006 à 15:52
Salut,
Ceci devrait fonctionner



Public
Function GetDword(
ByVal hKey
As
String,
ByVal strPath
As
String,
ByVal keyName
As
String)
As UInt32

Dim val
As UInt32

Try

Dim pRegKey
As RegistryKey

Select
Case hKey
'Pour savoir ou la clé est
Case "HKEY_CLASSES_ROOT" : pRegKey = Registry.ClassesRoot

Case "HKEY_CURRENT_CONFIG" : pRegKey = Registry.CurrentConfig

Case "HKEY_CURRENT_USER" : pRegKey = Registry.CurrentUser

Case "HKEY_DYN_DATA" : pRegKey = Registry.DynData

Case "HKEY_LOCAL_MACHINE" : pRegKey = Registry.LocalMachine

Case "HKEY_PERFORMANCE_DATA" : pRegKey = Registry.PerformanceData

Case "HKEY_USERS" : pRegKey = Registry.Users

End
Select

'pRegKey = pRegKey.OpenSubKey(strPath) 'Ouvrir la clé
val = Convert.ToUInt32(pRegKey.OpenSubKey(strPath).GetValue(keyName))
'Lire la valeur

Catch ex
As Exception
val = Convert.ToUInt32(0)

End
Try

Return val

End
Function
3
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006
20 avril 2006 à 16:15
Merci beaucoup, sa marche bien!!

Mais la je dois faire la fonction qui l'ajoute au registry, je n'ai pas encore essayé, mais je vois déja un probleme que je vais avoir : Comment je vais faire pour dire si c'est un decimal ou un hexadecimal??

Merci!!
0
forum_ma Messages postés 112 Date d'inscription samedi 16 octobre 2004 Statut Membre Dernière intervention 31 juillet 2006
20 avril 2006 à 19:45
Finalement j'ai trouvé un tutoriel sur un autre site, avec un module(en faite une classe) qui fait exactement ce que je cherchais a faire voici le liens :
http://www.codeproject.com/Purgatory/cregistry.asp

Merci bien Willi pour ton aide!!
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
22 avril 2006 à 11:30
Pas mal ce petit tuto :)
Bonne continuation
0
Rejoignez-nous