Gestion du registre

Résolu
Herve_be Messages postés 997 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 mai 2023 - 19 nov. 2018 à 12:50
Herve_be Messages postés 997 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 mai 2023 - 23 nov. 2018 à 10:25
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

Herve_be Messages postés 997 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 mai 2023 2
19 nov. 2018 à 16:05
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 ?
0
cs_Le Pivert Messages postés 7893 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 19 mai 2023 136
20 nov. 2018 à 10:02
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!

0
Herve_be Messages postés 997 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 mai 2023 2
23 nov. 2018 à 10:25
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.
0