FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Jeu de dames
Aujourd'hui à 22:52 par papydall

» Une boîte à rythmes DRUMBOX
Aujourd'hui à 22:38 par papydall

» Version instantanée du 16 mai 2012: PANORAMIC V 0.9.23i6
Aujourd'hui à 21:52 par Klaus

» MÉTHODE du plus petit carré (régression linéaire)
Aujourd'hui à 21:01 par Severin

» libérer toutes les variables d'un programme sans le fermer
Aujourd'hui à 20:02 par Jean Claude

» boîtes de messages multi-langue
Aujourd'hui à 19:54 par Severin

» BAR und FORM keine Möglichkeit
Aujourd'hui à 19:38 par Severin

» Plugicielle pour Panoramic
Aujourd'hui à 18:39 par Klaus

» Exécution d'un script en Panoramic SANS compiler !
Hier à 13:00 par Klaus

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2012
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partager | 
 

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

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Nardo26



Nombre de messages: 1344
Age: 43
Localisation: Valence
Date d'inscription: 02/07/2010

MessageSujet: [Truc&Astuce]Lire une chaine dans la base de registre   Lun 11 Avr 2011 - 9: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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Nardo26



Nombre de messages: 1344
Age: 43
Localisation: Valence
Date d'inscription: 02/07/2010

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Lun 11 Avr 2011 - 13: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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Klaus



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

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Lun 11 Avr 2011 - 13: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
Voir le profil de l'utilisateur http://klaus.panoramic.voila.net/index.html
JL35



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

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Lun 11 Avr 2011 - 13: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
Voir le profil de l'utilisateur
Nardo26



Nombre de messages: 1344
Age: 43
Localisation: Valence
Date d'inscription: 02/07/2010

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Lun 11 Avr 2011 - 13: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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
659_minifly



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

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Lun 11 Avr 2011 - 17: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
Voir le profil de l'utilisateur
JL35



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

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Lun 11 Avr 2011 - 20: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
Voir le profil de l'utilisateur
Nardo26



Nombre de messages: 1344
Age: 43
Localisation: Valence
Date d'inscription: 02/07/2010

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Lun 11 Avr 2011 - 20: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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
JL35



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

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Lun 11 Avr 2011 - 21: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
Voir le profil de l'utilisateur
Nardo26



Nombre de messages: 1344
Age: 43
Localisation: Valence
Date d'inscription: 02/07/2010

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Mar 12 Avr 2011 - 8: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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Nardo26



Nombre de messages: 1344
Age: 43
Localisation: Valence
Date d'inscription: 02/07/2010

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Mar 12 Avr 2011 - 13: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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
Jack
Admin


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

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Mar 12 Avr 2011 - 14: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
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Nardo26



Nombre de messages: 1344
Age: 43
Localisation: Valence
Date d'inscription: 02/07/2010

MessageSujet: Re: [Truc&Astuce]Lire une chaine dans la base de registre   Mar 12 Avr 2011 - 15: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
Voir le profil de l'utilisateur http://nardo26.lescigales.org
 

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

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» P'tit truc...
» Florennes air base
» astuce ma bimbo
» astuce pour prendre sa photo de ohmydollz !
» Base de données radars fixes et feux tricolores - Fiabilité de la carte

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-