Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Thaorius en 17 Julio 2005, 02:10 am



Título: Problema leyendo el registro
Publicado por: Thaorius en 17 Julio 2005, 02:10 am
Hola gnete!

Bueno, el problema es que cunado trato de leer el registro obteniendo un valor y ponerlo en una variable global algo anda mal.

Segun mi, es la variable porque si pongo un msgbox en la funcion paraque imprima nBufferDATA, lo hace bien.

Como puedo solucionarlo?

Funcion:
Código:
Function RegistryGetValueData(MasterKey, Key, Value)
Dim nBufferKey As Long
Dim nBufferDATA As String
nBufferDATA = Space(256)
RegOpenKey MasterKey, Key, nBufferKey
RegQueryValueEx nBufferKey, Value, 0, REG_SZ, nBufferDATA, Len(nBufferDATA)
KeyValue = nBufferDATA
End Function

Declaraciones:
Código:
Public Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long

'constants'
Public Const REG_SZ = 1
Public Const HKLM = &H80000002 ' This is really HKEY_LOCAL_MACHINE

'Globals'
Dim NTOwner As String
Dim KeyValue As String

Saludos


Título: Re: Problema leyendo el registro
Publicado por: goodbye en 17 Julio 2005, 12:45 pm
Hola colega! Que error te da exactamente?

Prueba a no definir el tipo en la variable o lo que es lo mismo dejala como Variant


Título: Re: Problema leyendo el registro
Publicado por: Thaorius en 17 Julio 2005, 16:09 pm
No es que de un error, sino que al tratar de mostrar de algun modo(por ejemplo en un msgbox) la informacion obtenida, la variable esta vacia.
Pero sin embargo si dentro de la funcion pongo msgbox nBufferDATA

Lo hace bein.

Saludos


Título: Re: Problema leyendo el registro
Publicado por: {_The_Alwar_} en 17 Julio 2005, 19:01 pm
A lo mejor es que lo que intentas leer esta vacio o le estas diciendo que lea otra cosa sin querer, eso me pasa mucho a mi que quiero leer algo de algun sitio y a lo mejor leo otra cosa o me devuelve 0


Título: Re: Problema leyendo el registro
Publicado por: Thaorius en 17 Julio 2005, 19:12 pm
Nop, lo copie tal cual. Probe varias veces. De todas formas, esta creando el valor y en la linea siguiente l oobtiene. Solo apra probar pero no funca.

Saludos