Você está na página 1de 9

Borrar claves del registro

1 Usando ficheros .REG Podemos usar ficheros .REG para borrar claves del registro. Para ello ponemos un guin delante del nombre de la clave a borrar. Ejemplo, para borrar la clave HKCU\Software\MiAplicacion: [-HKCU\Software\MiAplicacion] Para vaciar el valor predeterminado de una clave: [HKCU\Software\MiAplicacion] @=Para borrar un valor dentro de una clave (en este caso el valor DirectorioInicio) [HKCU\Software\MiAplicacion] "DirectorioInicio"=Para lanzar un fichero .REG desde lnea de comandos usaremos regedit.exe de la siguiente forma: regedit.exe /s ruta\nombre_fichero.reg El modificador /s provoca que se combine el contenido del fichero con el registro sin pedir confirmacin. 2 Usando el programa REG Podemos utilizar la utilidad REG.EXE desde lnea de comandos o desde un .BAT de la siguiente forma: reg delete [\\equipo\]clave [/va | /ve | /v valor] [/f] equipo: nombre del equipo remoto (equipo local si se omite). clave: Nombre completo de la subclave a eliminar o donde se elimina, empezando desde la raz (se pueden usar abreviaturas: HKLM, HKU, etc.). /va: Elimina todos los valores de la subclave y el contenido del valor predeterminado.

/ve: Elimina el valor predeterminado de la subclave. /v valor: Elimina el valor de nombre "valor" de la subclave (se debe encerrar entre comillas si incluye espacio/s). /f: Obliga a REG a reemplazar las subclaves y valores sin confirmacin. Ejemplos: Esta lnea borra el contenido del valor predeterminado de la clave HKEY_CURRENT_USER\Software\MiPrograma. reg delete HKCU\Software\MiPrograma /ve /f Esta lnea borra el valor DirectorioInicio de la clave HKEY_CURRENT_USER\Software\MiPrograma. reg delete HKCU\Software\MiPrograma /v DirectorioInicio /f Esta lnea borra todos los valores de la clave HKEY_CURRENT_USER\Software\MiPrograma y vaca de contenido al valor predeterminado. reg delete HKCU\Software\MiPrograma /va /f Esta lnea borra la clave HKEY_CURRENT_USER\Software\MiPrograma con todos sus valores y subclaves: reg delete HKCU\Software\MiPrograma /f Si quisiramos borrar una subclave de ella pero sin borrar el resto deberamos lanzar: reg delete HKCU\Software\MiPrograma\Subclave /f
Nota: REG.EXE es instalado en Windows 2000 desde el CD de instalacin en \Support\ResKit

3 Usando WSH (Windows Scripting Host) Podemos crear ficheros de script de JScript o de VBScript, lanzndolos con "cscript nombre_de_script.vbs" o "cscript nombre_de_script.js", segn el lenguaje utilizado. Para borrar una clave o valor se utiliza el mtodo RegDelete: JScript: objeto.RegDelete(clave_o_valor); VBScript: objeto.RegDelete clave_o_valor

Parmetros objeto: Objeto Shell clave_o_valor: Subclave o valor a borrar. Para que se borre una subclave, deber acabar con una barra de divisin entera o (back slash: "\") y si se debe borrar un valor se har sin la barra de divisin entera.
Ejemplos de RegDelete

JScript

Este ejemplo borra el valor DirectorioInicio de la clave HKEY_CURRENT_USER\Software\MiPrograma:

var obj_Shell = WScript.CreateObject("WScript.Shell"); obj_Shell.RegDelete("HKCU\\Software\\MiPrograma\\DirectorioInicio" );

Este ejemplo borra la clave HKEY_CURRENT_USER\Software\MiPrograma: var obj_Shell = WScript.CreateObject("WScript.Shell"); obj_Shell.RegDelete("HKCU\\Software\\MiPrograma\\");

VBScript

Este ejemplo borra el valor DirectorioInicio de la clave HKEY_CURRENT_USER\Software\MiPrograma: Set obj_Shell = WScript.CreateObject("WScript.Shell") obj_Shell.RegDelete "HKCU\Software\MiPrograma\DirectorioInicio"

Este ejemplo borra la clave HKEY_CURRENT_USER\Software\MiPrograma: Set obj_Shell = WScript.CreateObject("WScript.Shell") obj_Shell.RegDelete "HKCU\Software\MiPrograma\"

Una limitacin de trabajar con WSH para esta tarea, en comparacin con REG, es que no se pueden borrar los valores contenidos sin borrar la clave, pues los valores habra que ir pasndolos uno a uno y en caso de que no exista uno se producira un error que interrumpira el script. Hay dos formas de subsanar este error:

Usando try y catch en JScript o On Error Resume Next en VBScript. Esto nos obliga a escribir en el script cada uno de los valores que contiene o puede contener la clave. Es un procedimiento costoso que no paso a detallar (quizs en una ampliacin de este tip). Borrando toda la clave y volviendo a crearla posteriormente. Esto nos obliga a ver tambin el mtodo RegWrite: JScript: objeto.RegWrite(nombre, valor[, tipo]);

VBScript: objeto.RegWrite clave_o_valor, contenido[, tipo]

Parmetros
o o o

objeto: Objeto Shell. clave_o_valor: Subclave o valor a crear. Si es una subclave deber acabar con barra de divisin entera (back slash: "\"). contenido: si se crea una clave es el contenido del valor predeterminado, si se crea un valor es el contenido del valor. Si la clave o el valor ya existan, cambia el contenido del valor predeterminado o el valor segn proceda. tipo: REG_SZ, REG_EXPAND_SZ, REG_DWORD o REG_BINARY, cualquier otra provocar que RegWrite devuelva E_INVALIDARG.

Ejemplos de RegWrite: o

JScript Creacin de la clave HKEY_CURRENT_USER\Software\MiPrograma con el valor predeterminado "Este es mi programa" y con el valor "DirectorioInicio" con el contenido "d:\MiPrograma": var obj_Shell = WScript.CreateObject("WScript.Shell"); obj_Shell.RegWrite("HKCU\\Software\\MiPrograma\\", "Este es mi programa"); obj_Shell.RegWrite("HKCU\\Software\\MiPrograma\\Direc torioInicio", "d:\\MiPrograma", "REG_SZ");

Una vez creados claves y valor anteriores podemos cambiarlos:

var obj_Shell = WScript.CreateObject("WScript.Shell"); obj_Shell.RegWrite("HKCU\\Software\\MiPrograma\\", "Este es mi programa cambiado"); obj_Shell.RegWrite("HKCU\\Software\\MiPrograma\\Direc torioInicio", _ "d:\\MiProgramaCambiado", "REG_SZ"); VBScript Creacin de la clave HKEY_CURRENT_USER\Software\MiPrograma con el valor predeterminado "Este es mi programa" y con el valor "DirectorioInicio" con el contenido "d:\MiPrograma": Set obj_Shell = WScript.CreateObject("WScript.Shell") obj_Shell.RegWrite "HKCU\Software\MiPrograma\", "Este es mi programa" obj_Shell.RegWrite "HKCU\Software\MiPrograma\DirectorioInicio", "d:\MiPrograma", "REG_SZ" Una vez creados claves y valor anteriores podemos cambiarlos: Set obj_Shell = WScript.CreateObject("WScript.Shell") obj_Shell.RegWrite "HKCU\Software\MiPrograma\", "Este es mi programa cambiado" obj_Shell.RegWrite "HKCU\\Software\MiPrograma\DirectorioInicio", _ "d:\MiProgramaCambiado", "REG_SZ"

Por tanto, para borrar una clave y despus recrearla se hara de la siguiente forma:

JScript var obj_Shell = WScript.CreateObject("WScript.Shell"); obj_Shell.RegDelete("HKCU\\Software\\MiPrograma\\"); obj_Shell.RegWrite("HKCU\\Software\\MiPrograma\\", "Este es mi programa");

VBScript Set obj_Shell = WScript.CreateObject("WScript.Shell") obj_Shell.RegDelete "HKCU\Software\MiPrograma\"

obj_Shell.RegWrite "HKCU\Software\MiPrograma\", "Este es mi programa"

4 Usando archivos INF Los archivos de informacin de instalacin (INF) permiten realizar tareas como:

Instalar documentos. Personalizar equipos por medio del registro. Actualizar componentes. Copiar y ejecutar paquetes de instalacin. Deshabilitar caractersticas eliminando archivos.

Su aspecto es parecido al de los archivos REG o INI. est dividido en secciones, definidas por un nombre encerrado entre corchetes y dentro de cada seccin puede haber un nmero indeterminado de lneas. Todo archivo INF debe tener una seccin [Version] que tiene una nica entrada Signature; esto identifica al archivo como INF vlido: [Version] Signature=$CHICAGO$ Los valores posibles de Signature son:
Valor $Windows NT$ $Windows 95$ $Chicago$ Significado Sistemas operativos de ncleo NT Sistemas operativos Windows 9x/Me Todos los sistemas operativos Windows

La descripcin de la seccin [Version] la podemos encontrar en: INF Version Section http://msdn.microsoft.com/library/default.asp?url=/library/enus/install/hh/install/inf-format_99d7a25e-5585-4c98-a3473ee499cacce8.xml.asp Cuando se ejecuta un archivo INF (click derecho sobre l y seleccionar "Instalar") lo primero que hace el sistema es buscar la seccin [DefaultInstall],

que contiene llamadas a las secciones que contienen las lneas que se ejecutarn. Esto lo realiza por medio de una serie de palabras clave que identifican el tipo de tarea que realizar la lista de secciones (separadas por comas) que tiene asignada. El formato de estas entradas es: accin=seccin[,seccin]... Algunos de las acciones son:

AddReg: Secciones que aaden claves y valores al registro. CopyFiles: Secciones que copian archivos. CopyINF: Secciones que copian archivos INF. Slo disponible a partir de XP, si bien se puede usar en Windows 2000 instalando cocpyinf que viene en el Driver Development Kit en la carpeta \Tools DelReg: Secciones que eliminan claves y valores del registro. DelFiles: Secciones que borran archivos Ini2Reg: Secciones que llevan al registro entradas de los archivos INI. RegisterDlls: Secciones que registran DLL's. RenFiles: Secciones que renombran archivos. UpdateIniFields: Secciones que actualizan los campos en un archivo INI. UpdateInis: Secciones que cambian lneas de los archivos INI. UnregisterDlls: Secciones que eliminan el registro de DLL's.

Es igual el orden en que se escriban las acciones en la seccin [DefaultInstall], pues el sistema establecer el orden segn las acciones; DelReg se ejecutar antes que AddReg, por ejemplo. Una vez vista esta breve introduccin a los ficheros INF veremos cmo podemos quitar calves y valores del registro usando este tipo de ficheros. Recapitulando vemos que necesitaremos definir la seccin [Version], la seccin [DefaultInstall]. Ahora, en la seccin [DefaultInstall], deberemos crear una entrada de tipo DelReg que apunte a una seccin personalizada donde aparecern las entradas que se ejecutarn para borrar claves y/o valores; a esta seccin (en el ejemplo) la llamaremos [BorraEsto]: [DefaultInstall] DelReg=BorraEsto En esta seccin que crearemos, pondremos una lnea por cada clave o valor a borrar, con la siguiente sintaxis: Clave troncal, Clave[,Valor] Parmetros

Clave troncal: en nombre largos o cortos, es decir HKCR (o HKEY_CLASSES_ROOT), HKCU (o HKEY_CURRENT_USER), HKLM (o HKEY_LOCAL_MACHINE) o HKU (o HKEY_USERS). Clave: nombre de la clave a eliminar o que contiene el valor que queremos eliminar. Nombre: nombre del valor que queremos eliminar.

Con todo esto, un ejemplo de fichero INF que borrara el valor DirectorioInicio de la clave HKEY_CURRENT_USER\Software\MiPrograma y que borrase la clave HKEY_CURRENT_USER\Software\MiPrograma\Preferencias quedara as: [Version] Signature=$Chicago$ [DefaultInstall] DelReg=BorraEsto [BorraEsto] HKCU,Software\MiPrograma,DirectorioInicio HKEY_CURRENT_USER,Software\MiPrograma\Preferencias Por ltimo, si queremos que se borren todos los valores contenidos en una clave borrando la clave y recrendola, deberemos crear una seccin [CreaEsto] invocada en una lnea AddReg de la seccin [DefaultInstall]: [DefaultInstall] AddReg=CreaEsto En esta seccin [CreaEsto] crearemos una lnea por cada clave o valor que queramos crear. La sintaxis es: Clave troncal, [clave], [valor], [tipo], [contenido] Parmetros

Clave troncal: en nombre largos o cortos, es decir HKCR (o HKEY_CLASSES_ROOT), HKCU (o HKEY_CURRENT_USER), HKLM (o HKEY_LOCAL_MACHINE) o HKU (o HKEY_USERS). Clave: nombre de la clave a crear o que contiene el valor que queremos crear. Valor: nombre del valor que queremos crear. Si se deja en blanco y se establece un dato en contenido, el dato ser el contenido del valor predeterminado de la clave. Tipo: Tipo de dato que contiene el valor expresado en formato numrico hexadecimal. Puede ser:

Tipo 0x00000000 0x00000001 0x00010000 0x00010001 0x00020000


Significa Dato REG_SZ Dato REG_BINARY Dato REG_MULTI_SZ Dato REG_DWORD Dato REG_EXPAND_SZ

Contenido: Dato que contiene el valor.

Es decir, que para eliminar toda la clave y recrearla (pondremos de valor predeterminado "Esta es mi aplicacin"): [Version] Signature=$Chicago$ [DefaultInstall] DelReg=BorraEsto AddReg=CreaEsto [BorraEsto] HKCU,Software\MiPrograma [CreaEsto] HKCU,Software\MiPrograma,,,"Esta es mi aplicacin" Vale, vale, muy bonito todo, pero cmo hago para que un fichero INF se ejecute de otra manera que no sea click derecho sobre el y pulsar sobre "Instalar"? Pues lo haremos desde lnea de comandos o un fichero BAT con la siguiente lnea: %SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 ruta_nombre_fichero.INF

Você também pode gostar