Transformation d'une valeur ascii en valeur reg_binary

Résolu
nonos85 Messages postés 5 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 2 décembre 2005 - 1 déc. 2005 à 10:56
nonos85 Messages postés 5 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 2 décembre 2005 - 2 déc. 2005 à 22:28
Bonjour

Afin de changer l'utilisateur enregistré dans office par le login utilisateur du pc, j'extrait la valeur de la clef "HKCU\Software\Microsoft\Office\9.0\Common\UserInfo\UserName".

Celle ci est codé en hexadécimal. J'aimerais transformer ma variable chaine (exemple : user) donné par le code
Set netw = CreateObject("WScript.Network")
netw.UserName

en valeur microsoft reg_binary

"UserName"=hex:75,00,73,00,65,00,72,00,00,00

Comment réaliser cette opération de conversion et d'écriture dans la base de registre en vbscript?

Merci

nono

8 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
1 déc. 2005 à 14:49
salut,

j'ai repris ton exemple.

tu n'as plus qu'à adapter...

[VB6]




Option Explicit

'

'

Private Sub Form_Load()

Const sHexa As String = "75,00,73,00,65,00,72,00,00,00"



' la chaîne en tableau

Dim aChaine() As String

aChaine = Split (sHexa, ",")



' Integer ascii en tableau

Dim aAscii() As Integer

ReDim aAscii(UBound(aChaine))



' ascii = code chaine convertie

Dim sResult As String: sResult = ""

Dim i As Integer

For i = 0 To UBound (aChaine)

aAscii(i) = Val(Right$(aChaine(i), 1)) + (Val(Left$(aChaine(i), 1)) * 16)

sResult = sResult & Chr$(aAscii(i))

Next i



' on vire les Chr(0)

sResult = Replace(sResult, Chr$(0), "")

MsgBox sResult

End Sub




<small> Coloration
syntaxique automatique [AFCK]</small>



++

PCPT [AFCK]
3
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
2 déc. 2005 à 16:17
non, je ne l'ai pas mais je peux le faire.....


















Option Explicit

'

'

Private Sub Form_Load()

Dim i As Integer

Const sChaine As String = "user"



' taille

Dim iLenChaine As Integer

iLenChaine = Len (sChaine)



' la chaîne en tableau

Dim aChaine() As String

ReDim aChaine(iLenChaine) 'premiere valeur null non utilisée... indice 0

For i = 1 To iLenChaine

aChaine(i) = Mid$(sChaine, i, 1)

Next i





' ascii integer en tableau

Dim aAscii() As Integer

ReDim aAscii(iLenChaine)

For i = 1 To iLenChaine

aAscii(i) = Asc (aChaine(i))

Next i



' ascii hexa en tableau + result

Dim sResult As String: sResult = ""

Dim aHexa() As String

ReDim aHexa(iLenChaine)

For i = 1 To (iLenChaine)

aHexa(i) = Hex (aAscii(i))

sResult = sResult & CStr(aHexa(i)) & ",00,"

Next i



' on ajoute le dernier chr(0)

sResult = sResult & "00,00"

MsgBox sResult



'résultat à obtenir avec "user" = "75,00,73,00,65,00,72,00,00,00"

End Sub





<small> Coloration
syntaxique automatique [AFCK]</small>




++


PCPT [AFCK]
3
nonos85 Messages postés 5 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 2 décembre 2005
2 déc. 2005 à 12:06
cela fonctionne nickel mais j'ai du mal à le transformer en vbs. je dois avoir des soucis de syntaxe
Sub transformation


sHexa = "75,00,73,00,65,00,72,00,00,00"


' la chaîne en tableau
Dim aChaine as String
aChaine = Split(sHexa, ",")
' Integer ascii en tableau
Dim aAscii
ReDim aAscii(UBound(aChaine))


' ascii = code chaine convertie
Dim sResult
Dim i
sResult = ""

For i = 0 To UBound(aChaine)
aAscii(i) = Val(Right(aChaine(i), 1)) + (Val(Left(aChaine(i), 1)) * 16)
sResult = sResult & Chr(aAscii(i))
Next


' on vire les Chr(0)
sResult = Replace(sResult, Chr(0), "")
MsgBox sResult
End Sub


transformation
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
2 déc. 2005 à 12:28
j'ai mis VB6 parceque je ne peux pas te le faire en VBS.

le code fonctionne, essai de voir dans des bouquins quelles sont les syntaxes....

bon courage

PCPT [AFCK]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nonos85 Messages postés 5 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 2 décembre 2005
2 déc. 2005 à 14:14
j'ai trouvé le problème c'est la fonction val qui n'a pas l'air d'exister ou de fonctionner de la même façon

merci en tout cas pour le code j'ai saisi la finalité

nonos85
0
PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 48
2 déc. 2005 à 14:39
alors pense à le valider

@+
0
nonos85 Messages postés 5 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 2 décembre 2005
2 déc. 2005 à 15:51
bon j'ai réussi à le transcrire en vbs (il faut simplement enlever val et mettre directement right par exemple) plus qu'à trouver la fonction inverse si tu as cela je suis preneur

nonos85
0
nonos85 Messages postés 5 Date d'inscription vendredi 11 juillet 2003 Statut Membre Dernière intervention 2 décembre 2005
2 déc. 2005 à 22:28
génial !!! tu me sauves la mise moi qui n'est pas l'habitude de programmer

merci

infiniment

nonos85
0
Rejoignez-nous