Toon posts:

[all] Met VBScript geen (lange) hex naar registry*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi allemaal,

Ik zit met een probleempje. Ik wil met een vbscript wat gegevens het register wegschrijven alleen lukt dat niet.

De bedoeling is dat ik het volgende hexdecimaal ‘cc 97 9a ff 3b 1d 99 a7’ in een REG_BINARY stopt.

vbscript:
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\ABZ\Pw", cc979aff3b1d99a7, "REG_BINARY"

Hij geeft dan een melding dat de type niet overeen komt met elkaar. Ik heb later hexdecimaal omgezet naar een decimaal waarden maar hier geeft hij ook dezelfde foutmelding, maar als ik om te proberen ‘255’ invul komt er wel netjes bij ‘Pw’ de waarde ‘ff’.

Ik heb al op msdn gekeken en google en zo maar ik ben niet wijzer van geworden.

Verwijderd

je moet ook geen hex code in een binary key proberen te zetten. alleen nullen of eentjes gebruiken dus...

  • bolke
  • Registratie: Oktober 2000
  • Laatst online: 06-10-2024

bolke

Klikt nu met een 50D.

Volgens mij kun je dit niet met VBS oplossen. Een aantal registry types kun je niet met VBS veranderen. Waaronder de de HEX.

Ook REG_MULTI_SZ is er een van.

Wat je kunt doen is REG.EXE aanroepen. (wshell.run("reg add ""HKEY_LOCAL_......)

[ Voor 35% gewijzigd door bolke op 22-04-2005 22:21 ]

http://www.hroling.nl


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

VBScript:
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
31
32
33
34
35
36
37
38
'
' Converts a string value to an binary array
' function taken from: http://groups.google.nl/groups?hl=nl&lr=&selm=OqSpLYCkEHA.1764%40TK2MSFTNGP10.phx.gbl
'
Function ToByteArray(ByVal sString)

   ReDim aBytes(Len(sString) * 2 + 1)

   iIndex = -1
   For iPos = 1 To Len(sString)
     iIndex = iIndex + 1
     aBytes(iIndex) = Asc(Mid(sString, iPos, 1))
     ' add a 0 after each letter
     iIndex = iIndex + 1
     aBytes(iIndex) = 0
   Next

   ' add two closing 0's
   iIndex = iIndex + 1
   aBytes(iIndex) = 0
   iIndex = iIndex + 1
   aBytes(iIndex) = 0

   ToByteArray = aBytes
End Function

'
' Found the Exchange MAPI Provider - change the signature in it
'
Sub AddSignature(baseKey)
   tmpSig = GetCurrentUser() & "_Signature"
   
   objReg.SetBinaryValue HKCU, _
                         baseKey, _
                         "New Signature", _
                         ToByteArray( tmpSig )
                            
End Sub


Zo doe ik het :)