en Programacion

Editar el Registro con VBScript

Tras buscar información para mi entrada anterior, voy a escribir una breve entrada con lo necesario para poder leer y editar el registro de Windows mediante VBScript.

Los tres objetos que vamos a usar son RegRead, RegWrite y RegDelete.
En relación a la sintaxis a usar para la ruta del registro que queremos modificar tenemos que tener en cuenta:

Podemos abreviar las ramas del registro:

  • HKEY_CURRENT_USER > HKCU
  • HKEY_LOCAL_MACHINE > HKLM
  • HKEY_CLASSES_ROOT > HKCR
  • HKEY_USERS > HKCU > HKEY_USERS
  • HKEY_CURRENT_CONFIG > HKEY_CURRENT_CONFIG

Dependiendo de si terminamos la ruta con o sin barra invertida «\» estaremos referenciando a la rama (o su valor por defecto) o al nombre de un valor:

  • «HKCU\Control Panel\Desktop\» se referirá a la rama «Desktop» o su valor por defecto.
  • «HKCU\Control Panel\Desktop\Wallpaper» se referirá al valor de la variable «Wallpaper» dentro de la rama «Desktop»

Registro de Windows

También conviene repasar los distintos tipos de datos que puede contener el registro:

  • REG_SZ: una cadena de tipo String
  • REG_DWORD: un valor numérico de tipo entero
  • REG_BINARY: un valor de tipo binario
  • REG_EXPAND_SZ: una cadena de tipo string
  • REG_MULTI_SZ: una matriz de cadenas

Para probar cualquiera de los ejemplos siguientes, puedes crear un nuevo archivo con extensión .vb [p.e: pruebas_registro.vb] y abrirlo con el Bloc de notas para copiar el contenido.

Leer datos del registro:

Vamos a ver un ejemplo para recuperar la ruta de la imagen que tenemos como escritorio:
[vb]
‘Definimos y creamos el objeto que usaremos para trabajar con el registro:
Dim oReg As Object
Set oReg = CreateObject(«Wscript.Shell»)

‘Definimos las variables necesarias
Dim strClave As String

‘Guardamos en la variable el valor de la clave
strClave = oReg.RegRead(«HKCU\Control Panel\Desktop\Wallpaper»)

‘Mostramos en un mensaje el valor de la clave
MsgBox strClave

‘Destruimos la variable de objeto
Set oReg = Nothing
[/vb]

Eliminar datos del registro:

Si quisieramos eliminar esa clave del registro, sería tan sencillo como pasar la ruta completa como parámetro. Te recomiendo hacer una copia de seguridad de la rama del registro en la que vayas a realizar pruebas antes de ponerte a ello.
[vb]
‘Definimos y creamos el objeto que usaremos para trabajar con el registro:
Dim oReg As Object
Set oReg = CreateObject(«Wscript.Shell»)

‘Eliminamos la clave del registro
oReg.RegDelete(«HKCU\Control Panel\Desktop\Wallpaper»)

‘Destruimos la variable de objeto
Set oReg = Nothing
[/vb]

Crear y modificar datos del registro:

A la hora de escribir claves en el registro tenemos que tener en cuenta el tipo de dato que vamos a almacenar.
Como ejemplo, cambiaremos la ruta de la imagen del escritorio definida:
[vb]
‘Definimos y creamos el objeto que usaremos para trabajar con el registro:
Dim oReg As Object
Set oReg = CreateObject(«Wscript.Shell»)

‘Definimos las variables necesarias
Dim strRuta As String
strRuta = «C:\fondo.jpg»

‘Escribimos el nuevo valor de la clave
oReg.RegWrite «HKCU\Control Panel\Desktop\Wallpaper», strRuta, «REG_SZ»

‘Destruimos la variable de objeto
Set oReg = Nothing
[/vb]

Editar el Registro de Windows con VBScript – Ejemplos
Tam: 1,1 Kb