PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Lire et écrire dans la base de registre
Lire et écrire dans la base de registre
Débuté par jdsetls, 06 déc. 2004 11:41 - 7 réponses
Posté le 06 décembre 2004 - 11:41
Bonjour,

Je souhaite écrire :

EFCO\limite haute\31/03/2005

dans la base de registres.

Quelqu'un peut-il me dire la syntaxe pour lire et écrire ceci ?

Je me demande simplement si c'est aussi facile et peu dangereux qu'un traitement de texte ?

Bien cordialement,

Jacques De Schryver
Posté le 06 décembre 2004 - 12:26
EFCO\limite haute\31/03/2005
dans la base de registres.
Quelqu'un peut-il me dire la syntaxe pour lire et écrire ceci ?
Je me demande simplement si c'est aussi facile et peu dangereux qu'un

traitement de texte ?

Bonjour,

L'écriture dans la base de donnée est très simple et sans danger si l'on
n'efface pas ce qu'on ne connait pas.

Un exemple d'écriture et de lecture :

Ecriture dans la base :
//<Résultat> = RegistreCréeClé(<Chemin de la clé>)
//<Résultat> = RegistreEcrit(<Chemin de la clé>, <Nom de la valeur>,
<Valeur> [,<Longueur>])
bReg est un boleen
// Il faut d'abord créer la clé
bReg = RegistreCréeClé("HKEY_CLASSES_ROOT\MonChemin\MonNomDeBase")
// Puis ensuite on peut écrire
bReg = RegistreEcrit("HKEY_CLASSES_ROOT\MonChemin\MonNomDeBase","Param1" ,
"Valeur 1")
bReg = RegistreEcrit("HKEY_CLASSES_ROOT\MonChemin\MonNomDeBase","Param1" ,
"Valeur 2")
// Etc...

Lecture dans la base :
// <Résultat> = RegistreLit(<Chemin de la clé>, <Nom de la valeur>
[,<Exécution>])
cReg est une chaine
cReg = RegistreLit("HKEY_CLASSES_ROOT\MonChemin\MonNomDeBase" ,"MaCléALire")

Pour votre cas particulier, la syntaxe serait :

// Ecriture
bReg est un booléen
cReg est une chaîne
cValeur est une chaîne
cDate est une chaîne
// EFCO\limite haute\31/03/2005
cDate = "31/03/2005"
cValeur = "EFCO\limite haute"
SI PAS RegistreExiste(cValeur) ALORS
bReg = RegistreCréeClé(cValeur)
FIN
SI RegistreExiste(cValeur) ALORS
bReg = RegistreEcrit(cValeur, "MonParam",cDate)
FIN

// Lecture
cReg = RegistreLit(cValeur, "MonParam")
Info(cReg)

Le code fonctionne, mais je ne vous le donne brut, a vous de l'améliorer et
de l'adapter à vos besoins.

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com
Posté le 06 décembre 2004 - 12:54
l'aide de windev a ce sujet est tres bien expliquée

les fonction en questions sont :

registrecréeclé << Crée une clé dans la base de registres de Windows
registreecrit << Écrit une valeur dans un registre de la base de registres de Windows

...

toutes les fonctions concernant la base de registre commence par : registre

En ce qui concerne l'ecriture la lecture dans la base de registre

je n'est jamais eu aucun probleme, et je l'utilise comme beaucoup d'autres je pense, pour la gestion des licences
Posté le 06 décembre 2004 - 12:54
l'aide de windev a ce sujet est tres bien expliquée

les fonction en questions sont :

registrecréeclé << Crée une clé dans la base de registres de Windows
registreecrit << Écrit une valeur dans un registre de la base de registres de Windows

...

toutes les fonctions concernant la base de registre commence par : registre

En ce qui concerne l'ecriture la lecture dans la base de registre

je n'est jamais eu aucun probleme, ce n'est pas dangereux et je l'utilise comme beaucoup d'autres je pense, pour la gestion des licences
Posté le 06 décembre 2004 - 15:27
Bonjour et merci,

Tout d'abord j'ai été abusé par la fausse complexité des
"HKey_Classes_Root"

qui à mon avis ne servent à rien.

Si je considère la base de registre comme un simple fichier texte, j'obtiens un code simplifié et qui fonctionne :

RegistreCréeClé("Efco_collaborateurs\")
RegistreEcrit("Efco_collaborateurs", "Date_limite", "20050331")

ensuite :

Ma_vérification = RegistreLit("Efco_collaborateurs", "Date_limite")

donne 20050331

En bref, c'est une succession de nom_de_variable, variable, nom_de_variable, variable, etc.

Merci à tous,

Jacques De Schryver
Posté le 07 décembre 2004 - 10:29
Bonjour,

Voici le code complet, avec sécurité et avant cryptage :

PROCEDURE Limites_de_validité()
Ma_version est une chaîne = "Efco_collaborateurs_01\"
Date_limite_basse est une chaîne
Date_limite_haute est une chaîne
Date_de_dernière_utilisation est une chaîne

//Crée les registres lors d'une première utilisation
SI PAS RegistreExiste(Ma_version) ALORS
RegistreCréeClé(Ma_version)
RegistreEcrit(Ma_version, "Date_limite_basse", "20041201")
RegistreEcrit(Ma_version, "Date_limite_haute", "20041231")
RegistreEcrit(Ma_version, "Date_de_dernière_utilisation", DateSys())
FIN

Date_limite_basse = RegistreLit(Ma_version, 1)
Date_limite_haute = RegistreLit(Ma_version, 2)
Date_de_dernière_utilisation = RegistreLit(Ma_version, 3)

SI (DateSys() < Date_limite_basse OU DateSys() < Date_de_dernière_utilisation) ALORS
FinProgramme("Veuillez contacter Efco" + CR + "Problème d'horloge sur votre ordinateur")
Ferme()
FIN

SI DateSys() > Date_limite_haute ALORS
FinProgramme("Veuillez contacter Efco" + CR + "ou télécharger la nouvelle version, svp." + CR + "Celle-ci est périmée.")

FIN

En espérant que cela fera gagner du temps à certains.

Bien cordialement,

Jacques De Schryver
Posté le 10 décembre 2004 - 00:00
"Jacques De Schryver" a écrit dans le message
Voici le code complet, avec sécurité et avant cryptage :

PROCEDURE Limites_de_validité()
Ma_version est une chaîne = "Efco_collaborateurs_01\"
Date_limite_basse est une chaîne
Date_limite_haute est une chaîne
Date_de_dernière_utilisation est une chaîne

//Crée les registres lors d'une première utilisation
SI PAS RegistreExiste(Ma_version) ALORS
RegistreCréeClé(Ma_version)
RegistreEcrit(Ma_version, "Date_limite_basse", "20041201")
RegistreEcrit(Ma_version, "Date_limite_haute", "20041231")
RegistreEcrit(Ma_version, "Date_de_dernière_utilisation", DateSys())
FIN

Date_limite_basse = RegistreLit(Ma_version, 1)
Date_limite_haute = RegistreLit(Ma_version, 2)
Date_de_dernière_utilisation = RegistreLit(Ma_version, 3)

SI (DateSys() < Date_limite_basse OU DateSys() <

Date_de_dernière_utilisation) ALORS
> FinProgramme("Veuillez contacter Efco" + CR + "Problème d'horloge sur
votre ordinateur")
Ferme()
FIN

SI DateSys() > Date_limite_haute ALORS
FinProgramme("Veuillez contacter Efco" + CR + "ou télécharger la nouvelle

version, svp." + CR + "Celle-ci est périmée.")

FIN


Bonjour,

A un détail près pour que Date_de_dernière_utilisation soit efficace, il
faut modifier ce code comme ceci :

PROCEDURE Limites_de_validité()
Ma_version est une chaîne = "Efco_collaborateurs_01\"
Date_limite_basse est une chaîne
Date_limite_haute est une chaîne
Date_de_dernière_utilisation est une chaîne
//Crée les registres lors d'une première utilisation
SI PAS RegistreExiste(Ma_version) ALORS
RegistreCréeClé(Ma_version)
RegistreEcrit(Ma_version, "Date_limite_basse", "20041201")
RegistreEcrit(Ma_version, "Date_limite_haute", "20041231")
//RegistreEcrit(Ma_version, "Date_de_dernière_utilisation", DateSys()) //
Cette ligne est à déplacer
// car ici elle n'est traitée que lors de la première utilisation
// et n'est ensuite plus jamais modifiée dancs la base de registre.
FIN
Date_limite_basse = RegistreLit(Ma_version, 1)
Date_limite_haute = RegistreLit(Ma_version, 2)
Date_de_dernière_utilisation = RegistreLit(Ma_version, 3)
SI (DateSys() < Date_limite_basse OU DateSys() <
Date_de_dernière_utilisation) ALORS
FinProgramme("Veuillez contacter Efco" + CR + "Problème d'horloge sur votre
ordinateur")
Ferme()
FIN
SI DateSys() > Date_limite_haute ALORS
FinProgramme("Veuillez contacter Efco" + CR + "ou télécharger la nouvelle
version, svp." + CR + "Celle-ci est périmée.")
FIN
RegistreEcrit(Ma_version, "Date_de_dernière_utilisation", DateSys()) //
Cette ligne est à placer ici.

Sincères salutations
--
Jean-Claude FLAJOULOT
spetb_no_Spam@tiscali.fr
(otez _no_Spam pour me contacter en privé)
Sécurité Pointage & Biométrie
http://www.sp-et-b.com
Posté le 10 décembre 2004 - 08:24
Enfin un qui suit !! ;o))

spetb avait énoncé :
"Jacques De Schryver" a écrit dans le message
Voici le code complet, avec sécurité et avant cryptage :

PROCEDURE Limites_de_validité()
Ma_version est une chaîne = "Efco_collaborateurs_01\"
Date_limite_basse est une chaîne
Date_limite_haute est une chaîne
Date_de_dernière_utilisation est une chaîne

//Crée les registres lors d'une première utilisation
SI PAS RegistreExiste(Ma_version) ALORS
RegistreCréeClé(Ma_version)
RegistreEcrit(Ma_version, "Date_limite_basse", "20041201")
RegistreEcrit(Ma_version, "Date_limite_haute", "20041231")
RegistreEcrit(Ma_version, "Date_de_dernière_utilisation", DateSys())
FIN

Date_limite_basse = RegistreLit(Ma_version, 1)
Date_limite_haute = RegistreLit(Ma_version, 2)
Date_de_dernière_utilisation = RegistreLit(Ma_version, 3)

SI (DateSys() < Date_limite_basse OU DateSys() < Date_de_dernière_utilisation) ALORS
FinProgramme("Veuillez contacter Efco" + CR + "Problème d'horloge sur votre ordinateur")
Ferme()
FIN

SI DateSys() > Date_limite_haute ALORS
FinProgramme("Veuillez contacter Efco" + CR + "ou télécharger la nouvelle version, svp." + CR +
"Celle-ci est périmée.")

FIN

Bonjour,

A un détail près pour que Date_de_dernière_utilisation soit efficace, il
faut modifier ce code comme ceci :

PROCEDURE Limites_de_validité()
Ma_version est une chaîne = "Efco_collaborateurs_01\"
Date_limite_basse est une chaîne
Date_limite_haute est une chaîne
Date_de_dernière_utilisation est une chaîne
//Crée les registres lors d'une première utilisation
SI PAS RegistreExiste(Ma_version) ALORS
RegistreCréeClé(Ma_version)
RegistreEcrit(Ma_version, "Date_limite_basse", "20041201")
RegistreEcrit(Ma_version, "Date_limite_haute", "20041231")
//RegistreEcrit(Ma_version, "Date_de_dernière_utilisation", DateSys()) //
Cette ligne est à déplacer
// car ici elle n'est traitée que lors de la première utilisation
// et n'est ensuite plus jamais modifiée dancs la base de registre.
FIN
Date_limite_basse = RegistreLit(Ma_version, 1)
Date_limite_haute = RegistreLit(Ma_version, 2)
Date_de_dernière_utilisation = RegistreLit(Ma_version, 3)
SI (DateSys() < Date_limite_basse OU DateSys() <
Date_de_dernière_utilisation) ALORS
FinProgramme("Veuillez contacter Efco" + CR + "Problème d'horloge sur votre
ordinateur")
Ferme()
FIN
SI DateSys() > Date_limite_haute ALORS
FinProgramme("Veuillez contacter Efco" + CR + "ou télécharger la nouvelle
version, svp." + CR + "Celle-ci est périmée.")
FIN
RegistreEcrit(Ma_version, "Date_de_dernière_utilisation", DateSys()) //
Cette ligne est à placer ici.

Sincères salutations


--
freddie3@wanadoo.fr
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net