Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3220 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Fonction pour écrire un DWORD dans la base de registre avec VB6

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Fonction pour écrire un DWORD dans la base de registre avec VB6

n°1533322
vieuxloup
Posté le 25-03-2007 à 11:27:55  profilanswer
 

Après avoir pas mal galéré j'ai finalement trouvé comment écrire un numérique DWORD dans une clef de la base de registre en n'utilisant que les fonctions API.
Si l'écriture d'un string ne m'avait jamais posé de problème, en revanche l'écriture de numérique était problématique et quand je vérifiais avec Regedit, je ne retrouvais jamais "mes petits".  
Mes recherches sur le Web ne m'ayant jamais complètement satisfait, j'ai mis au point la fonction ci-dessous qui intéressera peut-être certains d'entre-vous ?
 
'Déclarations :
Declare Function RegCreateKey& Lib "advapi32.dll" Alias "RegCreateKeyA" _
 (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long)
Declare Function RegSetValueEx& Lib "advapi32.dll" Alias "RegSetValueExA" _
 (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, _
 ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long)
Declare Function RegCloseKey& Lib "advapi32.dll" (ByVal hKey As Long)
 
'Constante :
Const REG_DWORD = 4  
 
Sub RegSetNum(RacineClef&, ByVal CheminClef$, ByVal Nom$, ByVal Donnee& )
    'écrit la valeur numérique Donnee& dans la base de registre
    Dim HandleCle&, X&
    Dim DonneeHexa$, Dword$, I%
     
    'création et/ou ouverture de la clef :
    X& = RegCreateKey&(RacineClef&, CheminClef$, HandleCle& )
     
    'Convertit Donnee& en hexadécimal :
    DonneeHexa$ = Hex(Donnee& )
    'Formate DonneeHexa$ sur 4 octets :
    DonneeHexa$ = Right$("0000000" & DonneeHexa$, 8)
    'Fabrique la chaine DWORD de 4 octets :
    For I% = 1 To 7 Step 2
        Dword$ = Chr$("&H" & Mid$(DonneeHexa$, I%, 2)) & Dword$
    Next I%
    'écrit le DWORD dans la clef :
    X& = RegSetValueEx&(HandleCle&, Nom$, 0&, REG_DWORD, Dword$, 4)
     
    'fermeture de la clef :
    X& = RegCloseKey&(HandleCle& )
 
End Sub


Message édité par vieuxloup le 25-03-2007 à 13:01:54
mood
Publicité
Posté le 25-03-2007 à 11:27:55  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Fonction pour écrire un DWORD dans la base de registre avec VB6

 

Sujets relatifs
Se servir de sa base de donnee chez freeProblemme sur fonction [debutant]
[MATLAB] aide pour ecrire dans un fichierfonction setInterval
fonction changer nom fichierBase de données préalable création logiciel et site internet
[PHP] Fonction include dreamweaverimportation base sql via script php
[Ajax] fonction synchrone (onreadystatechange) marche pas sur mozilla? 
Plus de sujets relatifs à : Fonction pour écrire un DWORD dans la base de registre avec VB6


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR