elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Script para registro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Script para registro  (Leído 7,574 veces)
canario77

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Script para registro
« Respuesta #10 en: 4 Octubre 2009, 15:17 pm »

Una ultima cosa. Yo busco un valor de una clave, y al encontrarla como puedo borrar el contenido de esa clave, sin saber de antemano su nombre.

Ejemplo:
busco defaultuser y la encuentra en HKLM\Software\microsofot\Winnt\CurrentVersion\User como guardo la clave User para luego borrarlo.


En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Script para registro
« Respuesta #11 en: 4 Octubre 2009, 16:17 pm »

La almacenás en en una variable, como en la funcion Datos del primer link que te dejé.




En línea

Adrian Desanti
canario77

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Script para registro
« Respuesta #12 en: 4 Octubre 2009, 16:43 pm »

¿cual es la variable que lo guarda?
En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Script para registro
« Respuesta #13 en: 4 Octubre 2009, 17:08 pm »

Citar
  • 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

Me pones un ejemplo?



EnumRegistryKeys y CheckRegistryKey Es un ejemplo de como enumerar claves y guardarlas en la funcion Datos, debes adaptarlo a lo que vos nesecites. Luego para borrar RegDeleteKey.

Saludos






« Última modificación: 4 Octubre 2009, 17:13 pm por Dessa » En línea

Adrian Desanti
canario77

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Script para registro
« Respuesta #14 en: 4 Octubre 2009, 17:29 pm »

Se pueden poner comodines en el codigo, es decir, como siempre la clave es aleatoria, se podria poner HKLM\Software\Miscrosoft\Windows NT\Current Version\ProfileList\* ya que donde pone * a veces es S-1-51 otras veces S-1-20, etc etc
En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Script para registro
« Respuesta #15 en: 4 Octubre 2009, 17:46 pm »

Código:

Option Explicit

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private 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
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 Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As Any, source As Any, ByVal numBytes As Long)


Private Const KEY_READ = &H20019
Private Const KEY_ALL_ACCESS = &H3F

Const REG_SZ = 1
Const REG_EXPAND_SZ = 2
Const REG_BINARY = 3
Const REG_DWORD = 4
Const REG_MULTI_SZ = 7
Const ERROR_MORE_DATA = 234

Function GetRegistryValue(ByVal hKey As Long, ByVal KeyName As String, _
  ByVal ValueName As String, Optional DefaultValue As Variant) As Variant
  Dim handle As Long
  Dim resLong As Long
  Dim resString As String
  Dim resBinary() As Byte
  Dim length As Long
  Dim retVal As Long
  Dim valueType As Long
 
  ' Prepare the default result
  GetRegistryValue = IIf(IsMissing(DefaultValue), Empty, DefaultValue)
 
  ' Open the key, exit if not found.
  If RegOpenKeyEx(hKey, KeyName, 0, KEY_READ, handle) Then
    Exit Function
  End If
 
  ' prepare a 1K receiving resBinary
  length = 1024
  ReDim resBinary(0 To length - 1) As Byte
 
  ' read the registry key
  retVal = RegQueryValueEx(handle, ValueName, 0, valueType, resBinary(0), _
    length)
  ' if resBinary was too small, try again
  If retVal = ERROR_MORE_DATA Then
    ' enlarge the resBinary, and read the value again
    ReDim resBinary(0 To length - 1) As Byte
    retVal = RegQueryValueEx(handle, ValueName, 0, valueType, resBinary(0), _
      length)
  End If
 
  ' return a value corresponding to the value type
  Select Case valueType
    Case REG_DWORD
      CopyMemory resLong, resBinary(0), 4
      GetRegistryValue = resLong
    Case REG_SZ, REG_EXPAND_SZ
      ' copy everything but the trailing null char
      resString = Space$(length - 1)
      CopyMemory ByVal resString, resBinary(0), length - 1
      GetRegistryValue = resString
    Case REG_BINARY
      ' resize the result resBinary
      If length <> UBound(resBinary) + 1 Then
        ReDim Preserve resBinary(0 To length - 1) As Byte
      End If
      GetRegistryValue = resBinary()
    Case REG_MULTI_SZ
      ' copy everything but the 2 trailing null chars
      resString = Space$(length - 2)
      CopyMemory ByVal resString, resBinary(0), length - 2
      GetRegistryValue = resString
    Case Else
      RegCloseKey handle
      Err.Raise 1001, , "Unsupported value type"
  End Select
 
  ' close the registry key
  RegCloseKey handle
End Function

Function EnumRegistryKeys(ByVal hKey As Long, ByVal KeyName As String) As Collection
'Enumerate registry keys under a given key  'Returns a collection of strings

  Dim handle As Long
  Dim length As Long
  Dim index As Long
  Dim subkeyName As String
 
  ' initialize the result collection
  Set EnumRegistryKeys = New Collection
 
  ' Open the key, exit if not found
  If Len(KeyName) Then
    If RegOpenKeyEx(hKey, KeyName, 0, KEY_READ, handle) Then Exit Function
    ' in all case the subsequent functions use hKey
    hKey = handle
  End If
 
  Do
    ' this is the max length for a key name
    length = 260
    subkeyName = Space$(length)
    ' get the N-th key, exit the loop if not found
    If RegEnumKey(hKey, index, subkeyName, length) Then Exit Do
   
    ' add to the result collection
    subkeyName = Left$(subkeyName, InStr(subkeyName, vbNullChar) - 1)
    EnumRegistryKeys.Add subkeyName, subkeyName
    ' prepare to query for next key
    index = index + 1
  Loop
 
  ' Close the key, if it was actually opened
  If handle Then RegCloseKey handle
   
End Function

Function CheckRegistryKey(ByVal hKey As Long, ByVal KeyName As String) As Boolean
' Return True if a Registry key exists
 
  Dim handle As Long
  ' Try to open the key
  If RegOpenKeyEx(hKey, KeyName, 0, KEY_READ, handle) = 0 Then
    ' The key exists
    CheckRegistryKey = True
    ' Close it before exiting
    RegCloseKey handle
  End If

End Function


Private Sub Form_Load()
 Dim i As Long
 Dim variable As String
 If EnumRegistryKeys(&H80000002, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList").Count > 0 Then
      For i = 1 To EnumRegistryKeys(&H80000002, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList").Count
          variable = variable + EnumRegistryKeys(&H80000002, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList").Item(i) + vbNewLine
      Next i
      MsgBox variable
 Else
      MsgBox "No"
 End If

End
End Sub


« Última modificación: 4 Octubre 2009, 17:55 pm por Dessa » En línea

Adrian Desanti
canario77

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Script para registro
« Respuesta #16 en: 4 Octubre 2009, 17:56 pm »

Lo que quiero buscar es la clave CentralProfile.
En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Script para registro
« Respuesta #17 en: 4 Octubre 2009, 18:09 pm »

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

canario77 : Ya te han indicado los pasos a seguir
« Última modificación: 4 Octubre 2009, 18:10 pm por Dessa » En línea

Adrian Desanti
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Script para registro
« Respuesta #18 en: 4 Octubre 2009, 18:17 pm »

@ canario77

el post no da para preguntar mas, ya te dijeron todo lo que hay que hacer, ahora de tu parte debes poner ganas para hacer las cosas y buscar un poco mas en internet antes o en el mismo foro...

saludos.
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[AYUDA] [VBS SCRIPT] Script para registro windows q no m funciona
Programación Visual Basic
Davigotchi 4 3,284 Último mensaje 2 Marzo 2020, 09:26 am
por Davigotchi
Crear un Script para cambiar un Registro
Software
javifergavilan 1 3,808 Último mensaje 19 Septiembre 2021, 10:55 am
por Randomize
Crear un Script para cambiar un Registro
Scripting
javifergavilan 2 3,315 Último mensaje 19 Septiembre 2021, 19:27 pm
por javifergavilan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines