Access - Escribir Registry

 
Vista:

Escribir Registry

Publicado por Jessica (5 intervenciones) el 07/06/2005 17:31:01
Hola:

Necesito escribir en registry en el HKEY_LOCAL_MACHINE, actualmente estoy usando en Access la funcion de (SaveSetting "Folder", "General", "Prueba", Nombre).
Me escribe en el Registry pero en HKEY_CURRENT_USER.
Esta funcion es definida no se si existe otra que me escriba en HKEY_LOCAL_MACHINE.

Les agradecere cualquier ayuda,
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Escribir en el Registro de Windows (HKEY_LOCAL_MACHINE)

Publicado por Alejandro (4142 intervenciones) el 05/06/2023 18:32:39
En Access, la función SaveSetting se utiliza para escribir en el Registro de Windows, pero por defecto lo hace en la sección HKEY_CURRENT_USER. Si deseas escribir en la sección HKEY_LOCAL_MACHINE, necesitarás utilizar una técnica diferente.

Aquí te presento una solución alternativa para escribir en HKEY_LOCAL_MACHINE utilizando una función de VBA personalizada:

1. Abre el editor de Visual Basic presionando Alt + F11.
2. En el menú, selecciona "Insertar" y luego "Módulo" para insertar un nuevo módulo en tu proyecto.
3. En el nuevo módulo, agrega la siguiente función:

1
2
3
4
5
6
7
8
9
10
11
12
Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Private Const HKEY_LOCAL_MACHINE As Long = &H80000002
 
Public Sub EscribirEnRegistro(ByVal clave As String, ByVal valor As String, ByVal datos As String)
    Dim result As Long
    result = RegSetValueEx(HKEY_LOCAL_MACHINE, clave, 0&, 1, datos, Len(datos))
    If result <> 0 Then
        MsgBox "Error al escribir en el Registro."
    Else
        MsgBox "Escritura en el Registro completada con éxito."
    End If
End Sub

4. Ahora puedes utilizar la función `EscribirEnRegistro` en tu código de Access para escribir en HKEY_LOCAL_MACHINE. Por ejemplo:

1
EscribirEnRegistro "Software\MiAplicacion", "Configuracion", "Valor de configuracion"

Recuerda que para escribir en HKEY_LOCAL_MACHINE, generalmente se requieren permisos de administrador. Asegúrate de ejecutar Access con privilegios administrativos para poder escribir en esa sección del Registro.

Ten en cuenta que la modificación del Registro puede tener consecuencias importantes en el sistema operativo, por lo que es recomendable tomar precauciones y realizar pruebas exhaustivas antes de implementar esta funcionalidad en tu aplicación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar