Leer carpeta de regedit

Iniciado por dimitrix, 30 Diciembre 2006, 19:57 PM

0 Miembros y 2 Visitantes están viendo este tema.

dimitrix

Hola,  he podido modificar y borrar claves de registro, pero nunca he podido leerlas y que se pongan en un texbox, pero ahora necesito algo un poco más complicado.
Lo que necesito es que por ejemplo mire si existe la carpeta "HKEY_CURRENT_USER\Software\Algo" y si existe la carpeta algo que me salga en el texbox "si" y si no existe que salga "no"

Es para hacer un antivirus de un troyano invisible.

Muchas gracias.




<?BRoWLi?>

abre el archivo en modo random... y lee el registro k kieras...
Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleV
Piratas.com.es

dimitrix

sorry no te entiendo, me lo podrias poner, o explicar como si tuviese 3 año o menos.
Esque el random lo utilize una vez pero para hacer numeros aleajorios




<?BRoWLi?>

open registro for random as canal
get (almoadilla no la encuentro xD)canal, numero del registro, variable de almacenamiento
text1 = variabledealmacenamiento
close canal

Te confundes.. random es un modo de lectura aleatoria... no es que de num aleatorios jeje... hice un tuto donde explico sobre este tipo de acceso, esta por el foro

suerte
Si TRaTaS D SeR JusTo SoLo Es JuSTo EL CoRaZóN, LoS DeMaS OrGaNoS TRaTaRaN De KiTaRLe La RaZoN - DobleV
Piratas.com.es

dimitrix

ahora lo pruebo, ya te contare, gracias




dimitrix

Seria algo así

Private Sub Command1_Click()
Open registro For Random As canal
get #canal, numero del registro, variable de almacenamiento
Text1 = variabledealmacenamiento
Close canal

End Sub


en lo rejo que tengo que poner? con el ejemplo de HKEY_CURRENT_USER\Software\Algo como sería

Muchas gracias por todo y feliz navidad




NYlOn

Espero que esta funcion te sirva:

Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_CURRENT_CONFIG = &H80000005

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long


Public Function RegComprobarClave(Key As String, Subkey As String) As Boolean
    Dim regRes As Long
    Key = LLave(Key)
    RegOpenKey Key, Subkey, regRes
    If regRes = 0 Then
        RegComprobarClave = False
    Else
        RegComprobarClave = True
    End If
    RegCloseKey regRes
End Function


Para usarla pone:

MsgBox RegComprobarClave(HKEY_LOCAL_MACHINE, "Software\Microsoft")


Si existe la clave Microsoft te devuelve TRUE.

Saludos.-

CeLaYa

bueno pongo una respuesta y una pregunta.


respuesta para dimitrix1:
el código quedaría así:

Private Sub Command1_Click()
    Dim f As Long, s As String
    f = FreeFile
    Open registro For Random As f
    Get #f, 10, s
    Text1.Text = s
    Close f
end sub


Pregunta para BRoWLi:
¿Cual es el path y nombre del archivo que contiene los datos del registro?  :huh:
"La soledad es el elemento de los grandes talentos".
Cristina de Suecia (1626-1689) Reina de Suecia.

dimitrix

Te retoco el codigo:

En un modulo
CitarPublic Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_CURRENT_CONFIG = &H80000005

Citar
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long


Public Function RegComprobarClave(Key As String, Subkey As String) As Boolean
    Dim regRes As Long
    RegOpenKey Key, Subkey, regRes
    If regRes = 0 Then
        RegComprobarClave = False
    Else
        RegComprobarClave = True
    End If
    RegCloseKey regRes
End Function
He eliminado la parte:
CitarKey = LLave(Key)

Y en un botón:
CitarMsgBox RegComprobarClave(HKEY_LOCAL_MACHINE, "Software\Microsoft")

Gracias va genial




NYlOn

CitarHe eliminado la parte:
Key = LLave(Key)

Me olvide de poner esa funcion :-X. Era para que uno pueda poner HKLM en vez de HKEY_LOCAL_MACHINE. La funcion lo que hacia, era 'traducir' el metodo abreviado.

Saludos.-