Le premier site francophone dédié au développement Pocket PC


Comment accéder à la base de registre avec eVB ?
 
   

La base de registre est un outil très utile dès que vous avez besoin de stocker et/ou de lire des informations structurées.

Historique

Avant Windows 95, le système et les applications stockaient leurs données de paramétrage dans des fichiers INI. Ces fichiers INI étaient au format ascii (texte), et organisé en sections, variables et valeurs :

[Section 1]
Variable1 = Valeur1
Variable2 = Valeur2

[Section 2]
VariableX = ValeurX
VariableY = ValeurY

Pour écrire ou lire la valeur de 'VariableY', si suffisait d'utiliser une API à qui on passait en paramètre le nom du fichier INI, le nom de la section (ici 'Section 2'), et le nom de la variable (ici 'VariableY'). Cette API nous retournait la valeur (ici 'ValeurY'). On faisait de même avec l'API chargée d'écrire.

Avec l'arrivée de la technologie ActiveX, le système a eu besoin d'un stockage de valeurs plus complexe. En effet, le moindre composant ActiveX a besoin de stocker des valeurs ascii, et numérique structurées. Les ingénieurs de chez Microsoft ont créé un système de stockage directement géré par l'OS dont l'organisation est plus ambitieuse que celle des fichier INI.

Windows CE ne connait que la base de registre, la gestion des fichiers INI est absente de ses API.

Organisation de la base de registre

La base de registre d'un Pocket PC possède 3 racines :

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE

Chaque racine est organisée en clés, sous clés, sous-sous clés, etc... Pour terminer à un ensemble de valeurs de type ascii, binaire ou numérique. A chaque étage, on peut trouver des valeurs, et/ou des clés.

En utilisant le 'Remote Registry Editor' fourni avec eVB, vous pouvez constater que la base de registre est une base de données organisée comme un arbre.

Le chemin complet pour accéder aux valeurs de la clé 'Locations' est :
HKEY_CURRENT_USER\ControlPanel\Dial\Locations

Les API à utiliser

Les API permettant d'accéder aux informations de la base de registres sont :

RegCreateKeyEx
RegOpenKeyEx
RegCloseKey
RegDeleteKey
RegQueryValueExLong
RegQueryValueEx
RegQueryValueExString
RegSetValueExLong
RegSetValueExString

Module eVB spécialisé

Vous trouverez en téléchargement plus bas, un module eVB qui met en oeuvre toutes ces fonctions. Ce module spécialisé met à votre disposition 3 fonctions eVB qui vous permettrons d'accéder à la base de registre.

Les fonctions eVB contenues dans ce module sont :

Fonction eVB Commentaires
CreateNewKey

Permet de créer une nouvelle clé.


Pour créer 'HKEY_LOCAL_MACHINE\Tempo\Params' il suffit de faire :


Call CreateNewKey(HKEY_LOCAL_MACHINE, "Tempo\Params")

QueryValue

Permet de lire le contenu d'une variable.

Pour lire le contenu de la variable 'DossierSauvegarde' qui se trouve dans HKEY_LOCAL_MACHINE\Tempo\Params il suffit de faire :

wChaine = QueryValue(HKEY_LOCAL_MACHINE, "Tempo\Params", "DossierSauvegarde")

SetKeyValue

Permet de donner à une variable une valeur. Si la variable n'existe pas encore, elle est créée.

Pour placer la valeur contenue dans wChaine (variable de type chaine eVB) dans la variable 'DossierSauvegarde' placée dans HKEY_LOCAL_MACHINE\Tempo\Params il suffit de faire :

Call SetKeyValue(HKEY_LOCAL_MACHINE, "Tempo\Params", "DossierSauvegarde", wChaine, REG_SZ)

Pour placer la valeur contenue dans wLong (variable de type long eVB) dans la variable 'TailleDisque' placée dans HKEY_LOCAL_MACHINE\Tempo\Params il suffit d'écrire :

Call SetKeyValue(HKEY_LOCAL_MACHINE, "Tempo\Params", "TailleDisque", wLong, REG_DWORD)

Voila, vous disposez de tous les éléments pour accéder à la base de registre.

Sources de cet article

Stéphane Sibué

 

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.