Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: 50l3r en 26 Abril 2010, 01:02 am



Título: Leer clave de registro con wscript.shell
Publicado por: 50l3r en 26 Abril 2010, 01:02 am
Veran, necesito leer los valores de este lugar

hkcu\software\microsoft\windows\currentversion\run

beno, de este y de otros mas, la cosa que cuando quiero leer todos los valores que contiene tira este error

No se pudo abrir la clave de registro ..... para leerla

a que se debera? que hago mal vamos

Código
  1. Private Function registro()
  2.    Dim regedit As Object
  3.    Dim claves As String
  4.  
  5.    Set regedit = CreateObject("Wscript.Shell")
  6.  
  7.    claves = regedit.regread("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run")
  8.  
  9.    MsgBox claves
  10.  
  11.    Set regedit = Nothing
  12.  
  13. End Function
  14.  

saludos



Título: Re: Leer clave de registro con wscript.shell
Publicado por: seba123neo en 26 Abril 2010, 01:21 am
tenes que enumerarlas, podes con el metodo EnumKey de StdRegProv, eso es WMI, creo que con WSH no se puede enumerar...¿ igualmente porque no usas api's ? es lo mejor..


Título: Re: Leer clave de registro con wscript.shell
Publicado por: 50l3r en 26 Abril 2010, 08:06 am
ok entonces uso apis, muchas gracias ^^


Título: Re: Leer clave de registro con wscript.shell
Publicado por: skapunky en 26 Abril 2010, 14:07 pm
Yo personalmente lo hice con WMI. De todas formas:

Código
  1. Private Function registro()
  2.    Dim regedit As Object
  3.    Dim claves As String
  4.  
  5.    Set regedit = CreateObject("Wscript.Shell")
  6.  
  7.    claves = regedit.regread("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run")
  8.  
  9.    MsgBox claves
  10.  
  11.    Set regedit = Nothing
  12.  
  13. End Function

Deberías crear un array, para poder leer cada una de los valores y controlarlo con un FOR. Piensa que dentro la clave HCU.../Run exísten varias valores y tu idea no era mala pero solo serviria si existíera un solo valor.