FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
registre - [Truc&Astuce]Lire une chaine dans la base de registre Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

 

 [Truc&Astuce]Lire une chaine dans la base de registre

Aller en bas 
5 participants
AuteurMessage
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyLun 11 Avr 2011 - 10:45

Bonjour,
Suite à l'utilitaire du petit livret qu'a réalisé notre excellentissime confrere JL35,
Je me suis dis que si il avait la possibilité de détecter la présence ou non de l'utilitaire ImageMagick sur un PC, il pourrait valider ou non son option d'édition de photo.
Donc je me suis dis qu'il y aurait peut être quelque chose à gratter du côté de la base de registre.

Ci-joint une petite dll ainsi qu'un programme de démo pour pouvoir lire le contenu d'une clé de la base de registre. Pour l'instant on ne peut lire que les chaines de caractères....


le programme de démo

La dll
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyLun 11 Avr 2011 - 14:11

Petite modif : Ajout de la fonction WriteString qui permet d'écrire une chaine de caractère dans la base de registre.

Le lien vers la dll est toujours le même....


Exemple d'appel:
Code:
dll_on "registre.dll"

dim HKEY_CLASSES_ROOT%:    HKEY_CLASSES_ROOT%    = 2147483648 :' 0x80000000
dim HKEY_CURRENT_USER%:    HKEY_CURRENT_USER%    = 2147483649 :' 0x80000001
dim HKEY_LOCAL_MACHINE%:  HKEY_LOCAL_MACHINE%    = 2147483650 :' 0x80000002
dim HKEY_USERS%:          HKEY_USERS%            = 2147483651 :' 0x80000003
dim HKEY_PERFORMANCE_DATA%:HKEY_PERFORMANCE_DATA% = 2147483652 :' 0x80000004
dim HKEY_CURRENT_CONFIG%:  HKEY_CURRENT_CONFIG%  = 2147483653 :' 0x80000005
dim HKEY_DYN_DATA%:        HKEY_DYN_DATA%        = 2147483654 :' 0x80000006

dim Cle$:Cle$="Software\Panoramic\Language"
dim Entree$:Entree$="Font"
dim Contenu$:Contenu$=string$(40," ")
dim retour%

' lecture de l'entrée Font située dans la clé HKEY_CURRENT_USER\Software\Panoramic\Language
retour%=dll_call5("ReadString",HKEY_CURRENT_USER%,Adr(Cle$),adr(Entree$),adr(Contenu$),len(Contenu$))
print "#"+Contenu$+"#"

' création d'une entrée qui s'appelle 'Toto'
' dedans nous allons y mettre la chaine de caractère "Essai de WriteString"
Entree$="Toto"
Contenu$="Essai de WriteString"
retour%=dll_call4("WriteString",HKEY_CURRENT_USER%,Adr(Cle$),adr(Entree$),adr(Contenu$))

dll_off
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyLun 11 Avr 2011 - 14:30

Très chouette, mais ATTENTION ! A réserver à ceux qui savent vraiment ce qui'ils font ! Et n'imaginez-pas que parce qu'une écriture dans le registre de XP donne le résultat escompté, que le même programme va marcher tel quel sous Vista ou Seven !

Faites TOUJOURS une sauvegarde complète du registre avant d'essayer les écritures, ou au moins un point de restauration ! Précaution élémentaire !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyLun 11 Avr 2011 - 14:38

Merci Nardo !
mais je suis quand même entièrement de l'avis de Klaus. Autant c'est très intéressant pour explorer la base de registres, autant il faut bien savoir ce qu'on fait pour écrire dedans !

@Nardo pour ce qui est de ImageMagick je suis en train de coder l'équivalent en Panoramic (incrustation d'une image dans une autre), pour pouvoir s'en passer (pour l'instant je me mélange un peu les pinceaux, mais ça va venir), mais ton idée est évidemment valable pour n'importe quel logiciel.
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyLun 11 Avr 2011 - 14:49

Comme le dis Klaus : A utiliser avec précaution !
J'ai hésité à mettre la fonction WriteString pour cette raison...

Revenir en haut Aller en bas
http://nardo26.lescigales.org
659_minifly




Nombre de messages : 590
Age : 76
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyLun 11 Avr 2011 - 18:39

Bonjour
Un grand Merci Nardo. C'est quelque chose que j'attendais depuis un certain déja. Jack avait répondu
que cela existait déja pour Panoramic mais qu'il ne l'avait pas inclu encore a Panoramic.

Lecture ecriture des registres de windows Jeu 30 Déc 2010 - 17:33

A+
Revenir en haut Aller en bas
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyLun 11 Avr 2011 - 21:30

Bonsoir Nardo,
j'ai un problème avec ton programme de démo (registre.bas), sans compter qu'il faut rajouter des % à toutes les variables HKEY..., à l'exécution j'ai:
"Not Correct Arithmétic Expression: Error in Function. Line:17", la ligne 17 étant:
Code:
retour%=dll_call5("Test",HKEY_CURRENT_USER%,Adr(Cle$),adr(IdChaine$),adr(Contenu$),len(Contenu$))
??
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyLun 11 Avr 2011 - 21:52

Bonsoir à tous !

@JL35: c'est une erreur de ma part... recupere le 2eme post...

la syntaxe :
retour%=dll_call5("ReadString",HKEY_CURRENT_USER%,Adr(Cle$),adr(Entree$),adr(Contenu$),len(Contenu$))


A utiliser avec precaution :

retour%=dll_call4("WriteString",HKEY_CURRENT_USER%,Adr(Cle$),adr(Entree$),adr(Contenu$))

Smile
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyLun 11 Avr 2011 - 22:01

Merci Nardo, ça marche effectivement mieux avec le deuxième exemple ! même si j'ai inhibé l'écriture dans la base !
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyMar 12 Avr 2011 - 9:34

Bonjour à tous,

Pour simplifier le truc, le programme de demo ainsi que la Dll de référence sont dans les liens situé dans le 1er post...

J'ai rajouté dans la dll la possibilité de lire une valeur numérique:
Code:
retour% = dll_call3("ReadInteger",HKEY_CURRENT_USER%,Adr(Cle$),adr(Entree$))

ATTENTION :
J'ai modifié les valeurs des variables/constantes ( Wink )
HKEY_#####%
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyMar 12 Avr 2011 - 14:41

Mise à jour :

1- Lecture d'une clé de type chaine de caractère dans la base de registre:
Code:
retour% = Dll_Call5("ReadString", Root%, Adr(cle$), Adr(Entree$), Adr(Contenu$), Len(Contenu$))

2- Ecriture d'une clé de type chaine de caractère dans la base de registre:
Code:
retour% = Dll_Call5("WriteString", Root%, Adr(cle$), Adr(Entree$), Adr(Contenu$), Create%)

3- Lecture d'une clé de type Entier dans la base de registre:
Code:
retour% = Dll_Call3("ReadInteger", Root%, Adr(cle$), Adr(Entree$))

4- Ecriture d'une clé de type Entier dans la base de registre:
Code:
retour% = Dll_Call3("WriteInteger", Root%, Adr(cle$), Adr(Entree$), Valeur%, Create%)
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Jack
Admin
Jack


Nombre de messages : 2395
Date d'inscription : 28/05/2007

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyMar 12 Avr 2011 - 15:54

L'écriture n'est à utiliser que lorsqu'on maitrise parfaitement ce qu'on veut faire.
Le moindre grain de sable dans ce genre de commande et c'est gagné pour une réinstallation de Windows et de toutes les applications...
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Nardo26

Nardo26


Nombre de messages : 2294
Age : 56
Localisation : Valence
Date d'inscription : 02/07/2010

registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre EmptyMar 12 Avr 2011 - 16:42

Bonjour Jack,

Tu es la 2ème personne, avec Klaus, à brandir un drapeau, à juste titre d'ailleurs !
je réitère ce que j'ai dis :

En effet, si on ne sait pas à quoi ça sert, il vaut mieux s'abstenir de toucher aux fonctions d'écriture...

Pour les aficionados, j'ai quand même rajouter les fct d'écriture qui peuvent être utiles pour modifier des clés/entrées appartenant à des applications perso faites en Panoramic.
Il n'est pas conseillé de trafiquer les autres clés du système...
Revenir en haut Aller en bas
http://nardo26.lescigales.org
Contenu sponsorisé





registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty
MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   registre - [Truc&Astuce]Lire une chaine dans la base de registre Empty

Revenir en haut Aller en bas
 
[Truc&Astuce]Lire une chaine dans la base de registre
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» DLL base de registre questions precisions et conseils
» Astuce dans un string
» Recherche d'une chaîne dans tous les fichiers d'un dossier
» Recherche d'une chaîne de caractères dans une arborescence
» Tri de chaîne dans l'ordre strict Ascii

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: