Foros del Web » Programación para mayores de 30 ;) » Programación General »

registros de windows

Estas en el tema de registros de windows en el foro de Programación General en Foros del Web. estoy haciendo un programa en visual baic.net y necesito acceder a los registros de windows, como lo hago? existe alguna rutina o alguna funcion que ...
  #1 (permalink)  
Antiguo 04/01/2005, 08:47
 
Fecha de Ingreso: noviembre-2004
Mensajes: 16
Antigüedad: 19 años, 5 meses
Puntos: 0
registros de windows

estoy haciendo un programa en visual baic.net y necesito acceder a los registros de windows, como lo hago? existe alguna rutina o alguna funcion que me pueda ayudar............
Gracias nuevamente
  #2 (permalink)  
Antiguo 06/01/2005, 16:26
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 meses
Puntos: 52
Huy, eso si es complicado, una vez lo intente, busque informacion en la MSDN de microsoft y por ahi hay algunas rutinos sobre el control de registros.

Saludos
  #3 (permalink)  
Antiguo 06/01/2005, 17:11
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 19 años, 11 meses
Puntos: 74
Acceder al registro del sistema es muy fácil, existen un par de funciones en la API de Windows como RegOpenKeyEx, RegCreateKeyEx, RegCloseKey, RegQueryValueKeyEx, etc.

http://msdn.microsoft.com/library/en..._functions.asp
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #4 (permalink)  
Antiguo 07/01/2005, 00:46
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
No se crean, no es tan dificil, si, usas funciones API de windows como las que meciono Eternal Idol, pero para que vean que soy cuate, hay les pongo el modulo necesario para crear, borrar claves en el registro!!

Código:
Option Explicit
Global m_lngRetVal As Long

Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal lngRootKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal lngRootKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal lngRootKey As Long) As Long
Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal lngRootKey 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 RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal lngRootKey As Long, ByVal lpValueName As String) As Long

Public Const HKEY_CLASSES_ROOT As Long = &H80000000
Public Const HKEY_CURRENT_USER As Long = &H80000001
Public Const HKEY_LOCAL_MACHINE As Long = &H80000002
Public Const HKEY_USERS As Long = &H80000003
Public Const HKEY_PERFORMANCE_DATA As Long = &H80000004
Public Const HKEY_CURRENT_CONFIG As Long = &H80000005
Public Const HKEY_DYN_DATA As Long = &H80000006

Public Const REG_NONE As Long = 0                  ' No value type
Public Const REG_SZ As Long = 1                    ' nul terminated string
Public Const REG_EXPAND_SZ As Long = 2             ' nul terminated string w/enviornment var
Public Const REG_BINARY As Long = 3                ' Free form binary
Public Const REG_DWORD As Long = 4                 ' 32-bit number
Public Const REG_DWORD_LITTLE_ENDIAN As Long = 4   ' 32-bit number (same as REG_DWORD)
Public Const REG_DWORD_BIG_ENDIAN As Long = 5      ' 32-bit number
Public Const REG_LINK As Long = 6                  ' Symbolic Link (unicode)
Public Const REG_MULTI_SZ As Long = 7              ' Multiple Unicode strings
Public Const REG_RESOURCE_LIST As Long = 8         ' Resource list in the resource map
Public Const REG_FULL_RESOURCE_DESCRIPTOR As Long = 9 ' Resource list in the hardware description
Public Const REG_RESOURCE_REQUIREMENTS_LIST As Long = 10

'COMPRUEBA QUE EXISTA UNA CLAVE, REGRESA TRUE O FALSE
Public Function ExisteKey(ByVal lngRootKey As Long, ByVal strRegKeyPath As String) As Boolean
    Dim lngKeyHandle As Long
    lngKeyHandle = 0
    m_lngRetVal = RegOpenKey(lngRootKey, strRegKeyPath, lngKeyHandle)
    If lngKeyHandle = 0 Then
        ExisteKey = False
    Else
        ExisteKey = True
    End If
    m_lngRetVal = RegCloseKey(lngKeyHandle)
End Function

'CREA UNA KEY O FOLDER
Public Function CrearKey(ByVal lngRootKey As Long, ByVal strRegKeyPath As String)
    Dim lngKeyHandle As Long
    m_lngRetVal = RegCreateKey(lngRootKey, strRegKeyPath, lngKeyHandle)
    m_lngRetVal = RegCloseKey(lngKeyHandle)
End Function

'CREA O MODIFICA UNA KEY DE TIPO STRING O DWORD, CON UN VALOR DETERMINADO
Public Sub CrearKeyConValor(ByVal lngRootKey As Long, ByVal strRegKeyPath As String, ByVal strRegSubKey As String, varRegData As Variant)
  Dim lngKeyHandle As Long
  Dim lngDataType As Long
  Dim lngKeyValue As Long
  Dim strKeyValue As String
  If IsNumeric(varRegData) Then
      lngDataType = REG_DWORD
  Else
      lngDataType = REG_SZ
  End If
  m_lngRetVal = RegCreateKey(lngRootKey, strRegKeyPath, lngKeyHandle)
  Select Case lngDataType
         Case REG_SZ:       ' String data
              strKeyValue = Trim(varRegData) & Chr(0)     ' null terminated
              m_lngRetVal = RegSetValueEx(lngKeyHandle, strRegSubKey, 0&, lngDataType, _
                                          ByVal strKeyValue, Len(strKeyValue))
                                   
         Case REG_DWORD:    ' numeric data
              lngKeyValue = CLng(varRegData)
              m_lngRetVal = RegSetValueEx(lngKeyHandle, strRegSubKey, 0&, lngDataType, _
                                          lngKeyValue, 4&)  ' 4& = 4-byte word (long integer)
                                   
  End Select
  m_lngRetVal = RegCloseKey(lngKeyHandle)
End Sub

'BORRA UNA SUBKEY DEL REGISTRO
Public Function BorrarSubKey(ByVal lngRootKey As Long, ByVal strRegKeyPath As String, ByVal strRegSubKey As String)
    Dim lngKeyHandle As Long
    If ExisteKey(lngRootKey, strRegKeyPath) Then
        m_lngRetVal = RegOpenKey(lngRootKey, strRegKeyPath, lngKeyHandle)
        m_lngRetVal = RegDeleteValue(lngKeyHandle, strRegSubKey)
        m_lngRetVal = RegCloseKey(lngKeyHandle)
    End If
End Function
eso es todo lo que necesitan!! dudas, pues nomas mandenme un mensage o posteen, por aqui me doy vueltas diariamente!!

bytes!!
  #5 (permalink)  
Antiguo 07/01/2005, 00:59
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
ah, olvide poner como se llaman las funciones, pues nomas asi:

Código:
'Para saber si existe un registro, en este caso comprobamos que exista la key (folder) System
If Not ExisteKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\System") then

'Para crear una key (folder), en este ejemplo creamos la key (folder) System
Call CrearKey(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\System")

end if
'Para crear una subkey con un valor, en este caso creamos "DisableTaskMgr" , con un 1, sera de tipo Dwrod.
Call CrearKeyConValor(HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Policies\System", "DisableTaskMgr", 1)
con esto hemos bloqueado el taskmanager!! Ctrl+Alt+Del a quedado desabilitado!!, primero comprovamos que que exista el folder system, esto por que algunas veces no existe, si no existe, pues lo creamos, despues, creamos dentro de este la key DisableTaskMgr, con valor de "1", si queremos volver a rehabilitar el taskmanager le ponemos un "0" a esa misma subkey!!

bueno espero que con este ejemplo practico, halla quedado claro el manejo del registro!!

bytes!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:47.