Script para registro

Iniciado por canario77, 3 Octubre 2009, 20:52 PM

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

canario77

Hola estoy intentando hacer un programa que busque una clave en el registro y al encontrarla, borrar la subclave y todas las claves que haya dentro de donde se encuentre. Un saludo y muchas gracias

YST

¿Que tienes hecho ? ¿Cual es la duda? :P


Yo le enseñe a Kayser a usar objetos en ASM

BlackZeroX


No son todas pero con esas puedes hacer lo que deseas y un poco mas

Código (vb) [Seleccionar]

Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Declare Function RegConnectRegistry Lib "advapi32.dll" Alias "RegConnectRegistryA" (ByVal lpMachineName As String, ByVal hKey As Long, ByRef phkResult As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByRef phkResult As Long) As Long
Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, ByRef lpSecurityAttributes As SECURITY_ATTRIBUTES, ByRef phkResult As Long, ByRef lpdwDisposition As Long) As Long
Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByVal cbName As Long) As Long
Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, ByRef lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, ByRef lpcbClass As Long, ByRef lpftLastWriteTime As FILETIME) As Long
Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, ByRef lpcbValueName As Long, ByVal lpReserved As Long, ByRef lpType As Long, ByRef lpData As Byte, ByRef lpcbData As Long) As Long
Declare Function RegFlushKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Declare Function RegGetKeySecurity Lib "advapi32.dll" (ByVal hKey As Long, ByVal SecurityInformation As Long, ByRef pSecurityDescriptor As SECURITY_DESCRIPTOR, ByRef lpcbSecurityDescriptor As Long) As Long
Declare Function RegInstall Lib "advpack.dll" (ByVal hm As Long, ByVal pszSection As String, ByRef pstTable As CSTRTABLE) As Long
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
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As Any) As Long


Dulces Lunas
The Dark Shadow is my passion.

canario77

Se como buscar una clave en cuestio sabiendo donde esta. Pero si nose donde la guarda nose como buscarla.

Ejemplo:
On Error Resume Next
Set zonavirus = CreateObject("WScript.Shell")
X = zonavirus.regRead ("HKEY_LOCAL_MACHINE\Software\Encuentra")
If X = "uno" Then
MsgBox "Encontrado la variable"
Else
MsgBox "No encuentra la variable"
End If

Esto es un ejemplo de cuando se donde esta la clave, pero si quiero buscar en el registro un valor y nose donde se encuentra, que hago. En este caso "uno" esta en Encuentra, pero si no se que esta ahi, como puedo buscarlo en todo el registro.

YST

Para encontrar un valor en el registro sigue estos pasos :

  • Lista todas las claves del registro
  • Lee todas las subclaves ( o no me acuerdo como se llaman las que tienen datos )
  • Usa Instr para comprobar si existe la string dentro de la SubClave

    ;)


Yo le enseñe a Kayser a usar objetos en ASM

canario77


Dessa

#6
Adrian Desanti

canario77

Y como es una vez encontrado, borrar la clave y la clave principal. si esta llena se puede borrar?

canario77

Me estoy mareando con tantas letras, jejeje. Es lo que tiene cuando te mandan hacer un programa para el trabajo y no tener ni idea  de programacion en vbs. Desesperacion total....

Paso a paso, dicenn

Dessa

Cita de: canario77 en  4 Octubre 2009, 13:46 PM
Y como es una vez encontrado, borrar la clave y la clave principal. si esta llena se puede borrar?

RegDeleteKey(Raiz,Clave)

http://www.google.com.ar/search?hl=es&q=RegDeleteKey&btnG=Buscar&meta=

S2

Adrian Desanti