Escribir valor binario en registro

Iniciado por oskoa, 27 Diciembre 2010, 20:54 PM

0 Miembros y 1 Visitante están viendo este tema.

oskoa

Estuve viendo algo, antes de publicar:

http://foro.elhacker.net/programacion_vb/introducir_valor_binario_en_registro_usando_vb_script-t196741.0.html;msg934974

Aunque de todas formas lo que quiero es parecido (puede incluso que sea eso, y de necio que soy no me doy cuenta), no es exactamente lo que me falta.

Quiero escribir un valor REG_BINARY en VB 6.0, precisamente este valor:



Lo único que sé es que tengo que usar esto: SetBinaryValue

Alguna ayuda?  :huh: Gracias.

NOTA: hace 6 meses que no toco VB y me olvide de todo :S


BlackZeroX

#1
Debes de pasar el puntero del indice menor de un array byte ( Lbound() ) con el API.

Código (vb) [Seleccionar]


Declare Function RegSetValueExA Lib "advapi32.dll" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByRef lpData As Long, ByVal cbData As Long) As Long


Código (vb) [Seleccionar]


rtn = RegSetValueExA(hKey, Entry, 0, REG_BINARY, byval varptr(ByteArray(lbound(ByteArray))), TamañoArray)



Ejemplo:

Código (vb) [Seleccionar]


Dim ByteArray() As Byte
   ByteArray = Strings.StrConv("", vbFromUnicode)
   rtn = RegSetValueExB(hKey, Entry, 0, REG_BINARY, byval varptr(ByteArray(LBound(ByteArray))), IIf(LBound(ByteArray) = 0, 1, 0) + UBound(ByteArray))
   '   //  Aun que al usar StrConv() se puede obvia el Indice menor de esta manera
   rtn = RegSetValueExB(hKey, Entry, 0, REG_BINARY, byval varptr(ByteArray(0)), UBound(ByteArray) + 1)
   MsgBox "La longirud es de: " & IIf(LBound(ByteArray) = 0, 1, 0) + UBound(ByteArray)



Obviamente hayq ue abrir el registro con las apis RegOpenKeyEx y cerralo despues con RegCloseKey

P.D.: No puese el ejemplo completo ya que lo demas es una jalada que encuentras en la MSDN.

Temibles Lunas!¡.
The Dark Shadow is my passion.

oskoa