des fonctions d'éditions de registre !

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.

Qu'en pensez-vous ?

je suis pour...
7
64%
je suis contre...
4
36%
 
Nombre total de votes : 11

Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

des fonctions d'éditions de registre !

Message par Golfy »

Parce que RegINI_Lib est compilé pour PB 3.93 et que les API c'est un petit peu plus sensible et peu documenté...
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

Message par Progi1984 »

Cherche PBOSL_Registry, et tu auras ce que tu souhaites :)
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

purebasic n'a pas vocation a implémenter des fonctions spécifiques à windows.

pas de base de registres sous linux et macos.

une userlib, ou une include suffit.
Image
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

tiens !!


 
; By Dobro
Declare.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s)
Declare.l WriteRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.s)
Declare.l WritebinaryRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.l)

; tout ce passe dans le registre
;HKEY_CURRENT_USER\Control Panel\Mouse\

; MouseThreshold1 et MouseThreshold2
; défini le nombre maximal de pixels que la souris peut déplacer
; entre des interruptions de souris avant que le système modifie la relation entre le mouvement de souris et curseur.
; Si le mouvement de souris dépasse le seuil défini par MouseThreshold1
; et Si MouseSpeed est supérieur à 0, déplace le curseur selon le double de la vitesse normale.
; Si le mouvement de souris dépasse le seuil défini par MouseThreshold2
; et Si MouseSpeed est 2, déplace le curseur selon 4 fois la vitesse normale.

; définissez la valeur de MouseSpeed (vitesse) à 1 ou 2 (1 double la vitesse normale, 2 quadrupler la vitesse normale).



;on lit la valeur actuel de MouseThreshold1
Threshold1$=ReadRegKey( #HKEY_CURRENT_USER , "Control Panel\Mouse\" , "MouseThreshold1" )

;on lit la valeur actuel de MouseThreshold2
Threshold2$=ReadRegKey( #HKEY_CURRENT_USER , "Control Panel\Mouse\" , "MouseThreshold2" )

;on lit la valeur actuel de Mouse vitesse
vitesse$=ReadRegKey( #HKEY_CURRENT_USER , "Control Panel\Mouse\" , "MouseSpeed" )


Debug "Threshold1 :" +Threshold1$
Debug "Threshold2 :" +Threshold2$
Debug "vitesse :" +vitesse$







; *************************************************************************************************
; Lire une chaine dans le registre
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s) ; ====================================== ReadRegKey
    
     ; key.s=ReadRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Zone Labs\ZoneAlarm","InstallDirectory")
     ;
    hKey.l=0
    keyvalue.s= Space (255)
    DataSize.l=255
    
     If RegOpenKeyEx_ (OpenKey,SubKey,0, #KEY_READ ,@hKey)
        keyvalue= ""
     Else
         If RegQueryValueEx_ (hKey,ValueName,0,0,@keyvalue,@DataSize)
            keyvalue= ""
         Else
            keyvalue= Left (keyvalue,DataSize-1)
         EndIf
         RegCloseKey_ (hKey)
     EndIf
    
     ProcedureReturn keyvalue
EndProcedure

; ecrire une chaine dans le registre
Procedure.l WriteRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.s) ; ------------------------ WRITE KEY
    
     ; result.l=WriteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Test Program Name","Test","TestValue")
    
    hKey.l=0
     If RegCreateKey_ (OpenKey,SubKey,@hKey)=0
        Result=1
        DataSize.l= Len (keyvalue)
         If RegSetValueEx_ (hKey,keyset,0, #REG_SZ ,@keyvalue,DataSize)=0
            Result=2
         EndIf
         RegCloseKey_ (hKey)
     EndIf
     ProcedureReturn Result
     ;returns 0 if error / could not open or create SubKey
     ;returns 1 if error / could not write new value
     ;returns 2 if Success!!
    
EndProcedure

; ecrire un long dans le registre
Procedure.l WritebinaryRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.l) ; ------------------------ WRITE KEY
    
     ; result.l=WriteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Test Program Name","Test","TestValue")
    
    hKey.l=0
     If RegCreateKey_ (OpenKey,SubKey,@hKey)=0
        Result=1
        DataSize.l=4 ; nombre d'octets ecrit !!
         If RegSetValueEx_ (hKey,keyset,0, #REG_BINARY ,@keyvalue,DataSize)=0
            Result=2
         EndIf
         RegCloseKey_ (hKey)
     EndIf
     ProcedureReturn Result
     ;returns 0 if error / could not open or create SubKey
     ;returns 1 if error / could not write new value
     ;returns 2 if Success!!
    
EndProcedure

;*********************************************************************************************
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Re: des fonctions d'éditions de registre !

Message par Dr. Dri »

Golfy a écrit :peu documenté...
Il suffit de savoir où chercher

Dri ;)
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Message par Golfy »

Bon... apparemment la recherche sur le mot 'registry' ou 'registre' ne m'a pas donné autant de résultat que vous trois :lol:

Au vu des réponses très juste, je clos le sujet (et je me fait tout petit... :oops: )


PS : enfin, un modo peut-il clore le sujet SVP ?
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

On parle du registre windows, il suffit de chercher la doc chez microsoft.
En trois clics c'est trouvé :

http://msdn2.microsoft.com/en-us/library/ms724880.aspx

Dri ;)
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Message par Golfy »

Dobro a écrit :tiens !!


 
; By Dobro
Declare.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s)
Declare.l WriteRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.s)
Declare.l WritebinaryRegKey(OpenKey.l,SubKey.s,keyset.s,keyvalue.l)
Est-ce que les constantes existent toutes sous Purebasic ?
#HKEY_CLASSES_ROOT, #HKEY_CURRENT_USER et #HKEY_LOCAL_MACHINE

je ne trouve rien dans l'aide (chapitre des constantes) :oops:
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message par Dr. Dri »

Pour savoir si une constante est définie tu peux aller voir dans le Structure/Interface/Constant Viewer dans le menu outil de l'IDE

Dri

PS. celles-là sont définies
Golfy
Messages : 423
Inscription : mer. 25/août/2004 15:14
Localisation : Grenoble
Contact :

Message par Golfy »

Super ! merci !!!!
un excellent outil ce visualiseur de structure :D

==> merci à Dobro pour le code
==> merci à Dr Dri pour le visualiseur de constantes
Purebasic 5.30 full sous Windows XP (x86) et Win7 (64 bits), Linux Debian. Orientation réseaux, domotique
http://golfy.olympe.in/Teo-Tea/
Répondre