Bdr et valeur binaire "multi-ligne"

Résolu
Signaler
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010
-
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
-
Salut a tous,

Voila j'essai de lire une valeur binaire dans la base de registre,de la stockee en string pour la reecrire apres.
Mon probleme est que je ne parviens pas a redonner la meme valeur :(

Voici mon code (sans les declarations):
'Pour ecrire la valeur
Public Sub SetBinaryValue(Racin As Racine, cle As String, NomValeur As String, Valeur() As Long)
On Error GoTo er
Dim i As Long
Dim bi As Long
For i = 0 To UBound(Valeur) - 1
bi = bi + Len(Valeur(i))
Next i
Dim Pointeur As Long 'pointe sur la clé
Dim Resultat As Long 'résultat
Resultat = RegCreateKeyEx(Racin, cle, 0&, vbNullString, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESSb, 0&, Pointeur, Resultat)
Resultat = RegSetValueExLong(Pointeur, NomValeur, 0&, REG_BINARY, Valeur(0), bi)
Resultat = RegCloseKey(Pointeur)
er:
If Err.Description <> "" Then MsgBox Err.Description
End Sub

'Pour la lire
Function GetBinaryValue(ByVal hKey As Long, ByVal KeyName As String, _
ByVal ValueName As String) As Variant
Dim handle As Long
Dim resLong As Long
Dim resString As String
Dim resBinary() As Byte
Dim length As Long
Dim retVal As Long
Dim valueType As Long
Dim tmp As String
If RegOpenKeyEx(hKey, KeyName, 0, KEY_READ, handle) Then
Exit Function
End If
length = 1024
ReDim resBinary(0 To length - 1) As Byte
retVal = RegQueryValueEx(handle, ValueName, 0, valueType, resBinary(0), _
length)
If retVal = ERROR_MORE_DATA Then
ReDim resBinary(0 To length - 1) As Byte
retVal = RegQueryValueEx(handle, ValueName, 0, valueType, resBinary(0), _
length)
End If

Select Case valueType
Case REG_BINARY
If length <> UBound(resBinary) + 1 Then
ReDim Preserve resBinary(0 To length - 1) As Byte
End If
Dim i As Long
For i = 0 To UBound(resBinary) '- 1
tmp = tmp & CStr(resBinary(i)) & "|"
Next i
GetBinaryValue = tmp
Case Else
RegCloseKey handle
End Select
RegCloseKey handle
End Function

pour la cle HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\Main","Window Placement" par exemple il me renvoi:
("44|0|0|0|0|0|0|0|1|0|0|0|0|131|255|255|0|131|255|255|255|255|255|255|255|255|255|255|0|0|0|0|0|0|0|0|0|4|0|0|226|2|0|0|", "|")
'mais si je split ca et que je veux le reecrire et bin non il veut po me mettre la meme valeur :(
exemple:
Private Sub Command2_Click()
Dim rets() As Long
Dim ss() As String
Dim i As Long
ss = Split("44|0|0|0|0|0|0|0|1|0|0|0|0|131|255|255|0|131|255|255|255|255|255|255|255|255|255|255|0|0|0|0|0|0|0|0|0|4|0|0|226|2|0|0|", "|")
ReDim rets(0 To UBound(ss) - 1)
For i = 0 To UBound(ss) - 1
rets(i) = CLng(ss(i))
Next i
Call SetBinaryValue(HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\Main", "ESSAI", rets())
End Sub


Bon j'admets que c'est pas tres clair mon explication, mais je vois pas comment mieux expliquer..
Merci d'avance @+

13 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Tu peux étendre tes recherches sur www.pscode.com on sait jamais !
3
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
essais d'inverser le contenu de ton tableau à écrire.
Commence par écrire la dernière case et ainsi de suite jusqu'à la première case de ton tableau
0
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Salut Willi,

Merci pour ta reponse, mais le quel tableau veux tu que j'inverse ?
Et pourquoi pense tu qu'il faudrait l'inverser ?

Merci d'avance @+
0
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
j'ai eu le meme problème que toi lorsque j'avais besoin d'écrire une valeur binaire.

comme toi mes valeurs était dans un tableau de byte
et j'ai galérer pas mal de temps avant de trouver une solution sur google
inverse les cases du tableau de byte que tu dois envoyer à la ta fonction SetBinaryValue !

Je ne sais pas comment tu as écrites ta fonction SetBinaryValue alors je ne sais pas si sa va passer mais essais !
0
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Re,

En fait la valeur a l'air a l'endroit elle commence bien par les memes valeurs mais elle est bcp plus longue..

mais viens d'essayer quad meme et ca donne exactement la meme chose bizare ~

J'ai pus constate que je me rapprochait de la bonne valeur en virant les 0 (zero) de la chaine mais je vois pas quoi d'autre modifier :(

Encore merci @+
0
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
tu peux me donner la valeur binaire que tu dois écrire stp ?
0
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

En fait je nai pas une valeur a ecrire mais mon programme se doit de gerer ce type de valeurs...

Exemple de valeur:
http://www.keohosting.net/system/images/Reg-Binary.bmp
0
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
En effet c'est pas des plus simple...
Si j'ai quelque chose je te tiens au courant !
Bon courage
0
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Ok merci beaucoup :)

@+
0
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Re,

J'ai en effet trouve un code qui gere ce genre de cle sur www.pscode.com,
merci mille fois pour ton devouement :)

En esperant pouvoir te renvoyer la balle @+
et bonne prog ;)
0
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Dis moi peux tu me donner le lien de la source que tu viens de trouver svp sa peut servir à toute le monde je pense !

Bonne prog :)
++
0
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Yep bien sur ;)
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=57232&lngWId=1

Mais je prepare une class un peu plus complete(in french) que je deposerai bientot sur le site...

Encore merci @+
0
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
OK je te remerci bon courage @+
0