des fonctions d'éditions de registre !
Publié : mer. 26/sept./2007 13:09
Parce que RegINI_Lib est compilé pour PB 3.93 et que les API c'est un petit peu plus sensible et peu documenté...
Forums PureBasic - Français
http://forums.purebasic.com/french/
; 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
;*********************************************************************************************
Il suffit de savoir où chercherGolfy a écrit :peu documenté...
Est-ce que les constantes existent toutes sous Purebasic ?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)