MODIFICANDO EL REGISTRO DESDE VB

Iniciado por dxr, 11 Junio 2003, 06:48 AM

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

dxr

Pues tiene q leer bynari0o q es en lño q esta la clave en el registro....

si le pongo pa q me devuelva el valo de buffer no me devuekve nada y si lo ponho pa q me devuelva el valor de h me devuelve 0
:S:S

me dices:

por otra parte usas HKEY_CURRENT_USER ¿la tienes declarada? ( Private Const HKEY_CURRENT_USER = &H80000001 )

eso es lo q puse arriba esta mal?

Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.

byebye

arriba pones esto:
RegOpenKey HKEY_CURRENT_USER, "\Software\RAdmin\v2.0\Parameters", h

y cual es la funcion de h ahi?

y tambien e supuesto q esto se declaraba asi:

Private Const HKEY_LOCAL_MACHINE = &H80000002


tienes declarada HKEY_LOCAL_MACHINE pero usas HKEY_CURRENT_USER que en ese codigo no esta declarada, por otra parte si h devuelve 0 algun error ocurrio (seguro q es lo de HKEY).

Public Const REG_BINARY = 3                    
Public Const REG_DWORD = 4
Public Const REG_EXPAND_SZ = 2
Public Const REG_MULTI_SZ = 7
Public Const REG_NONE = 0                      
Public Const REG_SZ = 1                        

mas tipos de datos para q modifiques segun t venga bien

dxr

Este es el codigo q tengo:

Dim h, buffer As String
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long
Private Const HKEY_CURRENT_USER = &H80000002

Private Sub Form_Load()
buffer = String(1024, vbNullChar)
RegOpenKey HKEY_CURRENT_USER, "\Software\RAdmin\v2.0\Parameters", h
RegQueryValueEx h, "Parameters", 0, 1, ByVal buffer, Len(buffer)
'Open "c:/archivo.txt" For Append As #1
'Write #1, buffer
'Close #1
Label1.Caption = h
Label2.Caption = buffer

lo q me interesa ahora esq me devuelva el valor del vinari q le estoy apuntando, tambien decirte q en parameters en el registro no ay solo una clave lo menos ay12 segun lo estamos haciendo seria q me cogiera todas no????

pero aun asi esto no funca tampoco puedo analizarlo mucho xq esto es nuevo para mi... y estoy buscando informacion pero na...
Hacer preguntas concretas, claras y aportando toda la documentación necesaria.
De lo contrario, no tendreis una respuesta clara.

byebye

#13
continuas declarando HKEY_CURRENT_USER  con el valor de HKEY_LOCAL_MACHINE

HKEY_LOCAL_MACHINE = &H80000002
HKEY_CURRENT_USER = &H80000001

sobre lo de leer de golpe tendras que hacerlo de 1 en 1

otra cosa q acabo d ver es esta.

RegOpenKey HKEY_CURRENT_USER, "\Software\RAdmin\v2.0\Parameters", h
RegQueryValueEx h, "Parameters", 0, 1, ByVal buffer, Len(buffer)  > aqui anoser q el nombre sea = q la clave q abres tampco te lee nada.

supn esta clave, HKEY_LOCAL_MACHINE/Software/programa

entonces abres con regopenkey HKEY_LOCAL_MACHINE/Software/programa

dentro de esa clave hay "secciones" por nombres y cada una guarda un valor. entonces lees X sección y t devuelve su valor supon q dentro de esa clave existe "NOMBRE"
entonces regqueryvalueex "NOMBRE"

y nombre contiene "EL MIO" entonces en buffer tendras "EL MIO"



Zorrohack

 :o

Qusiera saber que diferencia hay entre este codigo que utilizo para crear una clae en el registro utilizo este

On Error Resume Next
MsgBox "Se creara una clave en el Registro HKLM\Software\Microsoft\Windows y se llamara zorrohack y su ruta sera c:\zorrohack.txt", vbInformation, "Crear clave al registro"
Set reg = CreateObject("WScript.Shell")
reg.RegWrite "HKLM\Software\Microsoft\Windows\zorrohack", "C:\zorrohack.txt"

con este codigo he creado una clave en registro + tambien le he anadido el valor.Quisera saber la diferencia entre este codigo puesto por Mr.Potato:

Dim h, buffer As String
buffer = String(1024, vbNullChar)
'crear una clave
RegOpenKey HKEY_LOCAL_MACHINE, "SOFTWARE", h
RegCreateKey h, "PRUEBA", h
RegCloseKey h
'aqui ya tienes la clave creada
'escribir un valor
RegOpenKey HKEY_LOCAL_MACHINE, "SOFTWARE\PRUEBA", h
RegSetValueEx h, "Nombre", 0, 1, ByVal "datos", Len("datos")
' aqui ya tienes el nuevo valor y datos en la clave creada
' borrar del registro el valor de la clave
RegDeleteValue h, "Nombre" ' Aqui se a borrado el nombre "Nombre" y el valor "datos"
RegCloseKey h

Ademas para borrar una clave utilizo este codigo:

On Error Resume Next
MsgBox "Este codigo borrara la clave creada,si existiera", vbInformation, "Borrar clave"
Set borrar = CreateObject("WScript.Shell")
x = borrar.RegRead("HKLM\Software\Microsoft\Windows\zorrohack")
If x = "" Then 'si esxiste la clave entonces voy a borrarla
MsgBox "No se borro porque no existe", vbInformation, "Clave no existe" ' si no existe pues muesto este mensaje
Else
z = borrar.RegDelete("HKLM\Software\Microsoft\Windows\zorrohack")
If z = "" Then
MsgBox "Clave borrada satisfactoriamente", vbInformation, "Clave borrada"
End If

Cual es la diferencia?

???
Progresamos porque hay Millones de imbeciles, maldicion jodi a McAfee,Panda,Kav,Norton, perdonen solo practicaba.

byebye

pues la primera diferencia es q en uno se usa la api de win y en otro no, y ya q estamos en win pq no utilizarla?. por otra parte no se si de la forma q tu dices se podra crear/leer un valor dword o de otro tipo. lo mas seguro es q si, yo en lo personal pienso q es mejor usar la api q para eso esta  ;D.

Zorrohack

ok

lo que pasa es que no se un pepino de Apis
no se como usarlas

???
Progresamos porque hay Millones de imbeciles, maldicion jodi a McAfee,Panda,Kav,Norton, perdonen solo practicaba.

Alpha

Mr.Potato, tu todo eso q sabes no creo q lo ayas aprendido solo........... Estas estudiando algo de programacion en la universidad o algo parecido?

???
Xq no es normal saber tanto, yo la verdad esq no me enterao de na.
Saludos :P

byebye

Alpha yo trabajo en la construccion de peon. lo que pasa q me gusta el tema este y leo todo lo que puedo.

Alpha

Y q aces de peon sabiendo tato?  ???