Gestion du registre [Résolu]

Signaler
Messages postés
895
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 mars 2021
-
Messages postés
895
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 mars 2021
-
Bonjour,
Voici le code que j'utilise pour écrire une valeur dans le registre
Dim OpenKey As Long, SetValue As Long, hKey As Long
RegKeyRoot = &H80000000 ' HKEY_CLASSES_ROOT
RegKeyName = "SOFTWARE\RVReefTools"

OpenKey = RegOpenKeyEx(RegKeyRoot, RegKeyName, 0, KEY_ALL_ACCESS, hKey)
SetValue = RegSetValueEx(hKey, KeyValueName, 0&, KeyDataType, ByVal CStr(KeyValueDate & Chr$(0)), Len(KeyValueDate))
If SetValue <> 0 Then MsgBox ("RegSetValueEx error " & Str$(SetValue))
SetValue = RegCloseKey(hKey)

Ce qui est très bizarre c'est que ça fonctionne très bien avec l'éditeur VB6
mais une fois compilé RegSetValueEx donne une erreur 6 (Invalid Handle) !

Pourquoi cette différence et surtout comment corriger ?
Merci d'avance

3 réponses

Messages postés
895
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 mars 2021
2
J'ai trouvé une partie de la solution : il semble que VB6 IDE ait accès à HKEY_CLASSES_ROOT mais pas la version compilée, pourquoi ?
Alors j'ai essayé avec HKEY_LOCAL_MACHINE : ça fonctionne mais

avec VB6 IDE il le met dans
HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\RVReefTools

avec VB6 compilé il le met dans
HKEY_USERS\S-1-5-21-2581077279-292536661-1282839472-1001\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\RVReefTools

N'y a-t-il pas moyen de toujours mettre la clé à l'endroit que j'ai choisi ?
Messages postés
7373
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
10 mai 2021
122
Bonjour,

J'ai été confronté à ce problème pour ce programme:

https://codes-sources.commentcamarche.net/source/102722-supprimer-les-fleches-des-icones-du-bureau

j'ai trouvé la solution ici:

https://openclassrooms.com/forum/sujet/creer-une-cle-registre-dans-hkey-local-machine?page=1

C'est du VB.Net, tu pourras peut-être l'adapter en VB6!

Messages postés
895
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
21 mars 2021
2
Bonjour,
Je n'ai toujours pas compris la différence entre IDE et version compilée mais entretemps j'ai trouvé la solution : il suffit de mettre la clé dans HKEY_CURRENT_USER et elle y reste que ce soit IDE ou compilé, problème résolu.