Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Début des fonctions de gestion du registre | |
| | Auteur | Message |
---|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Début des fonctions de gestion du registre Jeu 20 Sep 2012 - 1:43 | |
| KGF.dll passe à la version V1.60. Ajout de la fonction ReadRegistryKey. Cette fonction lit la donnée associée au triplet (ruche, clé, valeur). Cette donnée peut être numérique ou texte. Le format binaire et le format inconnu ne sont pas gérés. Cette fonction peut également servir à tester l'existence d'une clé, car elle retourne O si la clé est trouvée et la donnée est reconnue, ou 1 dans le cas contraire. Le format d'appel est le suivant: - Code:
-
res% = dll_call4("ReadRegistryKey",root%,adr(cle$),adr(valeur$),adr(donnee$)) avec root% étant l'identification de la ruche: 1 = HKEY_CLASSES_ROOT; 2 = HKEY_CURRENT_CONFIG; 3 = HKEY_CURRENT_USER; 4 = HKEY_LOCAL_MACHINE; 5 = HKEY_USERS; La doc est mise à jour dans tous les formats. Voici un petit programme de démo. Lancez-le et cliquez sur "Lire" directement - les paramètres sont préchargés avec des valeurs qui devraient être valides partout. - Code:
-
' test_ReadRegistryKey.bas
' ce programme permet lire une valeur d'une clé quelconque dans l registre.
label lire
dim res%, cle$, donnee$, valeur$, root%
combo 20 : top 20,10 : left 20,20 : width 20,200 item_add 20,"HKEY_CLASSES_ROOT" item_add 20,"HKEY_CURRENT_CONFIG" item_add 20,"HKEY_CURRENT_USER" item_add 20,"HKEY_LOCAL_MACHINE" item_add 20,"HKEY_USERS" text 20,item_read$(20,3) root% = 3
alpha 1 : top 1,40 : left 1,10 : caption 1,"Clé:" edit 2 : top 2,40 : left 2,50 : width 2,400
alpha 3 : top 3,70 : left 3,10 : caption 3,"Nom:" edit 4 : top 4,70 : left 4,50 : width 4,400
button 10 : top 10,100 : left 10,50 caption 10,"Lire" : on_click 10,lire
alpha 5 : top 5,130 : left 5,10 : caption 5,"Valeur:" edit 6 : top 6,130 : left 6,50 : width 6,400 alpha 11 : top 11,160 : left 11,50
dll_on "KGF.dll"
text 2,"Software\Microsoft\Windows\CurrentVersion\Internet Settings" text 4,"User Agent" end
lire: cle$ = trim$(text$(2)) valeur$ = trim$(text$(4)) donnee$ = string$(255," ") if item_index(20)>0 then root% = item_index(20) res% = dll_call4("ReadRegistryKey",root%,adr(cle$),adr(valeur$),adr(donnee$)) text 6,trim$(donnee$) if res%=0 caption 11,"Ok" else caption 11,"Erreur - clé inexistante" end_if return | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Sep 2012 - 11:32 | |
| Petit souci avec "GetShortName" Je ne savais plus où mettre ce post du coup il est là j'ai un souci avec cette fonction de KGF ( pas dans cette version mais la 1.58 je ne suis pas encore à jours, tu vas trop vite ! ). Le code est sur mon Webdav ( Panoramic 2\NPP.zip ) pour ne pas trop pollué ce sujet... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début des fonctions de gestion du registre Jeu 20 Sep 2012 - 11:38 | |
| Regarde mon programme de démo: - Code:
-
' test_GetShortName.bas
label chercher dim res%, nom_long$, nom_court$ open_dialog 1 button 2 : top 2,10 : left 2,10 : width 2,200 caption 2,"Chercher un fichier" on_click 2,chercher
dll_on "KGF.dll" end chercher: nom_long$ = file_name$(1) if nom_long$="_" then return nom_court$ = string$(255," ") res% = dll_call2("GetShortName",adr(nom_long$),adr(nom_court$)) if res%>0 message "Erreur en conversion" else nom_court$ = trim$(nom_court$) message nom_long$+chr$(13)+chr$(10)+"devient"+chr$(13)+chr$(10)+nom_court$ end_if return Le l'ai réexécuté pour vérifier - il marche bien et donne le bon résultat. Peux-tu t'inspirer de ce core ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Sep 2012 - 11:46 | |
| GRRrrrr ! je dois avoir de la M... dans les yeux ce matin, j'avais sauté une ligne Désolé.... Je vais me mettre à jour ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Début des fonctions de gestion du registre Jeu 20 Sep 2012 - 11:47 | |
| Merci Klaus pour cette nouvelle possibilité. Bon, je n'ai pas l'usage tout de suite, par rapport à ce que je veux faire, mais il est certain que cela peut être utile et pour de nombreuses choses. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début des fonctions de gestion du registre Jeu 20 Sep 2012 - 11:56 | |
| @Ygeronimi: Ce n'est pas grave. Cela m'arrive aussi.
@Jicehel: Je suis en train de mettre au point des fonctions de mise a jour des données, de création de clés et de valeurs et de leur suppression. Mais c'est évidemment beaucoup plus délicat. On pourrait utiliser ces fonctions, non seulement pour aller chercher la valeur de certains paramètres système, mais également mémoriser des paramètres de configuration, par exemple (numéro de licence, durée pour un shareware, dossier racine pour une application, ...). Les utilisations sont infinies ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Sep 2012 - 12:58 | |
| Je vais regarder de près ces nouvelles possibilités car pour les langues çà peut être un truc pour faire un logiciel intelligent qui prend la langue de l'utilisateur (ndlr celle de l'ordi ) comme langue par défaut. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Sep 2012 - 14:26 | |
| Peux tu m'indiquer comment récupérer le pays avec ta dll à partir de çà : | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début des fonctions de gestion du registre Jeu 20 Sep 2012 - 14:37 | |
| C'est très simple. Ton image donne clairement: - la ruche: HKEY_CURRENT_USER- la clé: Control Panel\International- la valeur: sCountryLa donnée recherchée est "France" Voici mon petit programme de démo modifié pour proposer directement les bonnes valeurs: - Code:
-
' test_ReadRegistryKey.bas
' ce programme permet lire une valeur d'une clé quelconque dans l registre.
label lire
dim res%, cle$, donnee$, valeur$, root%
combo 20 : top 20,10 : left 20,20 : width 20,200 item_add 20,"HKEY_CLASSES_ROOT" item_add 20,"HKEY_CURRENT_CONFIG" item_add 20,"HKEY_CURRENT_USER" item_add 20,"HKEY_LOCAL_MACHINE" item_add 20,"HKEY_USERS" text 20,item_read$(20,3) root% = 3
alpha 1 : top 1,40 : left 1,10 : caption 1,"Clé:" edit 2 : top 2,40 : left 2,50 : width 2,400
alpha 3 : top 3,70 : left 3,10 : caption 3,"Nom:" edit 4 : top 4,70 : left 4,50 : width 4,400
button 10 : top 10,100 : left 10,50 caption 10,"Lire" : on_click 10,lire
alpha 5 : top 5,130 : left 5,10 : caption 5,"Valeur:" edit 6 : top 6,130 : left 6,50 : width 6,400 alpha 11 : top 11,160 : left 11,50
dll_on "KGF.dll"
' text 2,"Software\Microsoft\Windows\CurrentVersion\Internet Settings" ' text 4,"User Agent" text 2,"Control Panel\International" text 4,"sCountry" end
lire: cle$ = trim$(text$(2)) valeur$ = trim$(text$(4)) donnee$ = string$(255," ") if item_index(20)>0 then root% = item_index(20) res% = dll_call4("ReadRegistryKey",root%,adr(cle$),adr(valeur$),adr(donnee$)) text 6,trim$(donnee$) if res%=0 caption 11,"Ok" else caption 11,"Erreur - clé inexistante" end_if return
Cela marche sans problème. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Sep 2012 - 14:46 | |
| Merci Klaus, J'avais un doute sur la clé et la valeur. La base de registre est une grande inconnue pour moi, et sachant un petit peu les problèmes que l'on peut avoir sur une mauvaise manipulation, elle me fait PEUR | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début des fonctions de gestion du registre Jeu 20 Sep 2012 - 14:52 | |
| En lecture, il n'y a aucun problème. Cette partie est sans danger. C'est l'écriture qui pose problème, et ce n'est pas encore dispo. Mais déjà la lecture, à l'image de ce que tu veux faire, peut donner des choses intéressantes. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Sep 2012 - 15:04 | |
| Edit : mon controle m' annonce toujours la version 1.58 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début des fonctions de gestion du registre Jeu 20 Sep 2012 - 15:33 | |
| Oups..... Désolé. C'est corrigé. Télécharge KGF.dll et ce sera réglé. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Sep 2012 - 15:55 | |
| Il n' y a pas de quoi Klaus çà fonctionne à merveille avec la 1.60... Les chemins sont ils les mêmes sur ton XP ou cela diffère selon les systèmes ? | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Début des fonctions de gestion du registre Jeu 20 Sep 2012 - 17:11 | |
| Tu parles des chemins dans le registre ? En principe, ce qui existe sous XP, existera de même sous Vista ou W7. La preuve: j'ai appliqué le chemin pour le langage et c'est le même. Bien sûr, les aspects spécifiques de Vista ou XP - je ne les aurai pas sous XP.
La procédure à suivre, c'est d'utiliser RegEdit pour repérer le chemin exact vers l'information qui t'intéresse, et tu mets ces valeurs dans le paramétrage. L'accès par lui-même passe par un service Windows qui doit fonctionner partour.
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Début des fonctions de gestion du registre Jeu 20 Sep 2012 - 17:24 | |
| Et s'il y a des différences signalées par les autres, hop, on ajoute le test de version de windows de la DLL et on regarde dans le chemin qui va bien | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 20 Sep 2012 - 18:35 | |
| Ok ! Merci pour les infos.
( Toutes ces questions sont pour la portabilité de mes programmes. Actuellement, je ne vois que pour Windows car je nage assez comme çà mais plus tard quand je maîtriserai Bill et Panoramic je verrai pour les autres) | |
| | | Contenu sponsorisé
| Sujet: Re: Début des fonctions de gestion du registre | |
| |
| | | | Début des fonctions de gestion du registre | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |