WD11 - Lire des valeurs du type "REG_MULTI_SZ" dans la base de registres
3 réponses
Paula
Boujour
Dans mon programme windev, je souhaite récupérer les données d'une valeur du
type "REG_MULTI_SZ".
Or, avec la commande RegistreLit du Wlangage, cela ne marche pas car une
instruction du genre
RegistreLit("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BthServ","DependOnGroup")
ne renvoi pas les valeurs de la données qui sont après le premier RC.
Si vous avez la solution (wlangage ou api), je suis preneuse.
Merci d'avance.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Georges Peyre
Paula a pensé très fort :
Boujour
Dans mon programme windev, je souhaite récupérer les données d'une valeur du type "REG_MULTI_SZ". Or, avec la commande RegistreLit du Wlangage, cela ne marche pas car une instruction du genre RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBthServ","DependOnGroup") ne renvoi pas les valeurs de la données qui sont après le premier RC.
Si vous avez la solution (wlangage ou api), je suis preneuse. Merci d'avance.
Paula
//traitement avec API iHandle est un entier strCle est une chaîne strValeur est une chaîne strDonnees est une chaîne
// avec un exemple de clé quelconque pour intégrer 4 données
//Ouverture du registre SI API("Advapi32","RegOpenKeyExA",HKEY_LOCAL_MACHINE,&strCle,0,KEY_READ + KEY_SET_VALUE,&iHandle) = 0 ALORS //si API("Advapi32","RegOpenKeyExA",HKEY_LOCAL_MACHINE,&strCle,0,KEY_SET_VALUE,&iHandle) = 0 ALORS SI API("Advapi32","RegSetValueExA",iHandle,&strValeur,0,7,&strDonnees,Taille(strDonnees)) = 0 ALORS //Info("ok") SINON Erreur(ErreurInfo(errComplet)) FIN //Fermeture du registre API("Advapi32","RegCloseKey",iHandle) SINON Erreur(ErreurInfo()) FIN
Voir aussi cette discussion sur le forum : tu y trouveras des explications pertinentes de Gilles Guédikian que je remercie encore http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_thread/thread/fc147779bc1ec9a6/e1889363f4b60741?lnk=gst&q=REG_MULTI_SZ&rnum=5#e1889363f4b60741
-- Elle est pas belle la vie ?
Paula a pensé très fort :
Boujour
Dans mon programme windev, je souhaite récupérer les données d'une valeur du
type "REG_MULTI_SZ".
Or, avec la commande RegistreLit du Wlangage, cela ne marche pas car une
instruction du genre
RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBthServ","DependOnGroup")
ne renvoi pas les valeurs de la données qui sont après le premier RC.
Si vous avez la solution (wlangage ou api), je suis preneuse.
Merci d'avance.
Paula
//traitement avec API
iHandle est un entier
strCle est une chaîne
strValeur est une chaîne
strDonnees est une chaîne
// avec un exemple de clé quelconque pour intégrer 4 données
//Ouverture du registre
SI API("Advapi32","RegOpenKeyExA",HKEY_LOCAL_MACHINE,&strCle,0,KEY_READ
+ KEY_SET_VALUE,&iHandle) = 0 ALORS
//si
API("Advapi32","RegOpenKeyExA",HKEY_LOCAL_MACHINE,&strCle,0,KEY_SET_VALUE,&iHandle)
= 0 ALORS
SI
API("Advapi32","RegSetValueExA",iHandle,&strValeur,0,7,&strDonnees,Taille(strDonnees))
= 0 ALORS
//Info("ok")
SINON
Erreur(ErreurInfo(errComplet))
FIN
//Fermeture du registre
API("Advapi32","RegCloseKey",iHandle)
SINON
Erreur(ErreurInfo())
FIN
Voir aussi cette discussion sur le forum : tu y trouveras des
explications pertinentes de Gilles Guédikian que je remercie encore
http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_thread/thread/fc147779bc1ec9a6/e1889363f4b60741?lnk=gst&q=REG_MULTI_SZ&rnum=5#e1889363f4b60741
Dans mon programme windev, je souhaite récupérer les données d'une valeur du type "REG_MULTI_SZ". Or, avec la commande RegistreLit du Wlangage, cela ne marche pas car une instruction du genre RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBthServ","DependOnGroup") ne renvoi pas les valeurs de la données qui sont après le premier RC.
Si vous avez la solution (wlangage ou api), je suis preneuse. Merci d'avance.
Paula
//traitement avec API iHandle est un entier strCle est une chaîne strValeur est une chaîne strDonnees est une chaîne
// avec un exemple de clé quelconque pour intégrer 4 données
//Ouverture du registre SI API("Advapi32","RegOpenKeyExA",HKEY_LOCAL_MACHINE,&strCle,0,KEY_READ + KEY_SET_VALUE,&iHandle) = 0 ALORS //si API("Advapi32","RegOpenKeyExA",HKEY_LOCAL_MACHINE,&strCle,0,KEY_SET_VALUE,&iHandle) = 0 ALORS SI API("Advapi32","RegSetValueExA",iHandle,&strValeur,0,7,&strDonnees,Taille(strDonnees)) = 0 ALORS //Info("ok") SINON Erreur(ErreurInfo(errComplet)) FIN //Fermeture du registre API("Advapi32","RegCloseKey",iHandle) SINON Erreur(ErreurInfo()) FIN
Voir aussi cette discussion sur le forum : tu y trouveras des explications pertinentes de Gilles Guédikian que je remercie encore http://groups.google.fr/group/fr.comp.developpement.agl.windev/browse_thread/thread/fc147779bc1ec9a6/e1889363f4b60741?lnk=gst&q=REG_MULTI_SZ&rnum=5#e1889363f4b60741
-- Elle est pas belle la vie ?
BMichel
> Dans mon programme windev, je souhaite récupérer les données d'une valeur du type "REG_MULTI_SZ". Or, avec la commande RegistreLit du Wlangage, cela ne marche pas car une instruction du genre RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBthServ","DependOnGroup") ne renvoi pas les valeurs de la données qui sont après le premier RC.
Il me semble que tu te trompes car la commande RegistreLit du Wlangage permet de lire les données d'une valeur du type "REG_MULTI_SZ" dans la BDR de Windows,.
Exemple: Soit la clé HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent Cette clé possède (sur ma machine sous XP en tout cas), une valeur "DependOnService" du type "REG_MULTI_SZ" et les données de cette valeur sont: - RPCSS - Tcpip - IPSec
Ainsi, soit le code suivant: chainelu est une chaine chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent", "DependOnService") info(chainelu)
Dans cette situation, c'est vrai que j'obtiens "RPCSS" et que je ne vois pas les autres données de cette valeur qui sont "Tcpip" et "IPSec". Mais c'est normal car les données de la valeur sont séparées par Caract(0). Donc, il me suffit de modifier le code ainsi: chainelu est une chaine chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent", "DependOnService") Info(Remplace(chainelu,Caract(0),RC))
J'ai remplacé les Caract(0) par des RC et hop, là je vois toutes les données de cette valeur.
Je pense que si les développeurs qui sont plus costauds que moi au niveau de la gestion de la base de registres avec WD passent par là, ils pourront peut-être te confirmer cela.
Bonne continuation. Bernard Michel
> Dans mon programme windev, je souhaite récupérer les données d'une valeur
du type "REG_MULTI_SZ".
Or, avec la commande RegistreLit du Wlangage, cela ne marche pas car une
instruction du genre
RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBthServ","DependOnGroup")
ne renvoi pas les valeurs de la données qui sont après le premier RC.
Il me semble que tu te trompes car la commande RegistreLit du Wlangage
permet de lire les données d'une valeur du type "REG_MULTI_SZ" dans la BDR
de Windows,.
Exemple:
Soit la clé HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent
Cette clé possède (sur ma machine sous XP en tout cas), une valeur
"DependOnService" du type "REG_MULTI_SZ" et les données de cette valeur
sont:
- RPCSS
- Tcpip
- IPSec
Ainsi, soit le code suivant:
chainelu est une chaine
chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent",
"DependOnService")
info(chainelu)
Dans cette situation, c'est vrai que j'obtiens "RPCSS" et que je ne vois pas
les autres données de cette valeur qui sont "Tcpip" et "IPSec".
Mais c'est normal car les données de la valeur sont séparées par Caract(0).
Donc, il me suffit de modifier le code ainsi:
chainelu est une chaine
chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent",
"DependOnService")
Info(Remplace(chainelu,Caract(0),RC))
J'ai remplacé les Caract(0) par des RC et hop, là je vois toutes les données
de cette valeur.
Je pense que si les développeurs qui sont plus costauds que moi au niveau de
la gestion de la base de registres avec WD passent par là, ils pourront
peut-être te confirmer cela.
> Dans mon programme windev, je souhaite récupérer les données d'une valeur du type "REG_MULTI_SZ". Or, avec la commande RegistreLit du Wlangage, cela ne marche pas car une instruction du genre RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBthServ","DependOnGroup") ne renvoi pas les valeurs de la données qui sont après le premier RC.
Il me semble que tu te trompes car la commande RegistreLit du Wlangage permet de lire les données d'une valeur du type "REG_MULTI_SZ" dans la BDR de Windows,.
Exemple: Soit la clé HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent Cette clé possède (sur ma machine sous XP en tout cas), une valeur "DependOnService" du type "REG_MULTI_SZ" et les données de cette valeur sont: - RPCSS - Tcpip - IPSec
Ainsi, soit le code suivant: chainelu est une chaine chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent", "DependOnService") info(chainelu)
Dans cette situation, c'est vrai que j'obtiens "RPCSS" et que je ne vois pas les autres données de cette valeur qui sont "Tcpip" et "IPSec". Mais c'est normal car les données de la valeur sont séparées par Caract(0). Donc, il me suffit de modifier le code ainsi: chainelu est une chaine chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent", "DependOnService") Info(Remplace(chainelu,Caract(0),RC))
J'ai remplacé les Caract(0) par des RC et hop, là je vois toutes les données de cette valeur.
Je pense que si les développeurs qui sont plus costauds que moi au niveau de la gestion de la base de registres avec WD passent par là, ils pourront peut-être te confirmer cela.
Bonne continuation. Bernard Michel
Georges Peyre
BMichel a présenté l'énoncé suivant :
Dans mon programme windev, je souhaite récupérer les données d'une valeur du type "REG_MULTI_SZ". Or, avec la commande RegistreLit du Wlangage, cela ne marche pas car une instruction du genre RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBthServ","DependOnGroup") ne renvoi pas les valeurs de la données qui sont après le premier RC.
Il me semble que tu te trompes car la commande RegistreLit du Wlangage permet de lire les données d'une valeur du type "REG_MULTI_SZ" dans la BDR de Windows,.
Exemple: Soit la clé HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent Cette clé possède (sur ma machine sous XP en tout cas), une valeur "DependOnService" du type "REG_MULTI_SZ" et les données de cette valeur sont: - RPCSS - Tcpip - IPSec
Ainsi, soit le code suivant: chainelu est une chaine chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent", "DependOnService") info(chainelu)
Dans cette situation, c'est vrai que j'obtiens "RPCSS" et que je ne vois pas les autres données de cette valeur qui sont "Tcpip" et "IPSec". Mais c'est normal car les données de la valeur sont séparées par Caract(0). Donc, il me suffit de modifier le code ainsi: chainelu est une chaine chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent", "DependOnService") Info(Remplace(chainelu,Caract(0),RC))
J'ai remplacé les Caract(0) par des RC et hop, là je vois toutes les données de cette valeur.
Je pense que si les développeurs qui sont plus costauds que moi au niveau de la gestion de la base de registres avec WD passent par là, ils pourront peut-être te confirmer cela.
Ta solution est séduisante par sa simplicité plutôt que d'utiliser une API. Mais est-ce qu'elle est aussi valable en ecriture avec RegistreEcrit sous la forme de donnée suivante par exemple :
MaDonnee est une chaine = "RPCSS"+caract(0)+"Tcpip"+caract(0)+IPSec+caract(0) sKey = "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent" RegistreEcrit(sKey,"DependOnService",MaDonnee)
Cordialement
-- Elle est pas belle la vie ?
BMichel a présenté l'énoncé suivant :
Dans mon programme windev, je souhaite récupérer les données d'une valeur
du type "REG_MULTI_SZ".
Or, avec la commande RegistreLit du Wlangage, cela ne marche pas car une
instruction du genre
RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBthServ","DependOnGroup")
ne renvoi pas les valeurs de la données qui sont après le premier RC.
Il me semble que tu te trompes car la commande RegistreLit du Wlangage
permet de lire les données d'une valeur du type "REG_MULTI_SZ" dans la BDR de
Windows,.
Exemple:
Soit la clé HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent
Cette clé possède (sur ma machine sous XP en tout cas), une valeur
"DependOnService" du type "REG_MULTI_SZ" et les données de cette valeur sont:
- RPCSS
- Tcpip
- IPSec
Ainsi, soit le code suivant:
chainelu est une chaine
chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent",
"DependOnService")
info(chainelu)
Dans cette situation, c'est vrai que j'obtiens "RPCSS" et que je ne vois pas
les autres données de cette valeur qui sont "Tcpip" et "IPSec".
Mais c'est normal car les données de la valeur sont séparées par Caract(0).
Donc, il me suffit de modifier le code ainsi:
chainelu est une chaine
chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent",
"DependOnService")
Info(Remplace(chainelu,Caract(0),RC))
J'ai remplacé les Caract(0) par des RC et hop, là je vois toutes les données
de cette valeur.
Je pense que si les développeurs qui sont plus costauds que moi au niveau de
la gestion de la base de registres avec WD passent par là, ils pourront
peut-être te confirmer cela.
Ta solution est séduisante par sa simplicité plutôt que d'utiliser une
API.
Mais est-ce qu'elle est aussi valable en ecriture avec RegistreEcrit
sous la forme de donnée suivante par exemple :
MaDonnee est une chaine =
"RPCSS"+caract(0)+"Tcpip"+caract(0)+IPSec+caract(0)
sKey =
"HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent"
RegistreEcrit(sKey,"DependOnService",MaDonnee)
Dans mon programme windev, je souhaite récupérer les données d'une valeur du type "REG_MULTI_SZ". Or, avec la commande RegistreLit du Wlangage, cela ne marche pas car une instruction du genre RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesBthServ","DependOnGroup") ne renvoi pas les valeurs de la données qui sont après le premier RC.
Il me semble que tu te trompes car la commande RegistreLit du Wlangage permet de lire les données d'une valeur du type "REG_MULTI_SZ" dans la BDR de Windows,.
Exemple: Soit la clé HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent Cette clé possède (sur ma machine sous XP en tout cas), une valeur "DependOnService" du type "REG_MULTI_SZ" et les données de cette valeur sont: - RPCSS - Tcpip - IPSec
Ainsi, soit le code suivant: chainelu est une chaine chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent", "DependOnService") info(chainelu)
Dans cette situation, c'est vrai que j'obtiens "RPCSS" et que je ne vois pas les autres données de cette valeur qui sont "Tcpip" et "IPSec". Mais c'est normal car les données de la valeur sont séparées par Caract(0). Donc, il me suffit de modifier le code ainsi: chainelu est une chaine chainelu=RegistreLit("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent", "DependOnService") Info(Remplace(chainelu,Caract(0),RC))
J'ai remplacé les Caract(0) par des RC et hop, là je vois toutes les données de cette valeur.
Je pense que si les développeurs qui sont plus costauds que moi au niveau de la gestion de la base de registres avec WD passent par là, ils pourront peut-être te confirmer cela.
Ta solution est séduisante par sa simplicité plutôt que d'utiliser une API. Mais est-ce qu'elle est aussi valable en ecriture avec RegistreEcrit sous la forme de donnée suivante par exemple :
MaDonnee est une chaine = "RPCSS"+caract(0)+"Tcpip"+caract(0)+IPSec+caract(0) sKey = "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesPolicyAgent" RegistreEcrit(sKey,"DependOnService",MaDonnee)