Blog gratis
Reportar
Editar
¡Crea tu blog!
Compartir
¡Sorpréndeme!
trucos y pistas
26 de Diciembre, 2008 · General

Borrar claves del registro

1 Usando ficheros .REG

Podemos usar ficheros .REG para borrar claves del registro. Para ello ponemos un guión delante del nombre de la clave a borrar. Ejemplo, para borrarla clave HKCUSoftwareMiAplicacion:

[-HKCUSoftwareMiAplicacion]

Para vaciar el valor predeterminado de una clave:

[HKCUSoftwareMiAplicacion]
@=-

Para borrar un valor dentro de una clave (en este caso el valor Directorio Inicio)

[HKCUSoftwareMiAplicacion]
"DirectorioInicio"=-

Para lanzar un fichero .REG desde línea de comandos usaremos regedit.exe de la siguiente forma:

regedit.exe /s ruta ombre_fichero.reg

El modificador /s provoca que se combine el contenido del fichero con el registro sin pedir confirmación.

2 Usando el programa REG

Podemos utilizar la utilidad REG.EXE desde línea 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, empezandodesde la raíz (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 confirmación.

Ejemplos:

Esta línea borra el contenido del valor predeterminado de la clave HKEY_CURRENT_USERSoftwareMiPrograma.
reg delete HKCUSoftwareMiPrograma /ve /f

Esta línea borra el valor DirectorioInicio de la clave HKEY_CURRENT_USERSoftwareMiPrograma.
reg delete HKCUSoftwareMiPrograma /v DirectorioInicio /f

Estalínea borra todos los valores de la claveHKEY_CURRENT_USERSoftwareMiPrograma y vacía de contenido al valor predeterminado.
reg delete HKCUSoftwareMiPrograma /va /f

Esta línea borra la clave HKEY_CURRENT_USERSoftwareMiPrograma con todos sus valores y subclaves:
reg delete HKCUSoftwareMiPrograma /f

Si quisiéramos borrar una subclave de ella pero sin borrar el resto deberíamos lanzar:
reg delete HKCUSoftwareMiProgramaSubclave /f

Nota: REG.EXE es instalado en Windows 2000 desde el CD de instalación en SupportResKit

3 Usando WSH (Windows Scripting Host)

Podemos crear ficheros de script de JScript o de VBScript, lanzándolos con"cscript nombre_de_script.vbs" o "cscript nombre_de_script.js", según el lenguaje utilizado. Para borrar una clave o valor se utiliza elmétodo RegDelete:

JScript:
objeto.RegDelete(clave_o_valor);

VBScript:
objeto.RegDelete clave_o_valor

Parámetros

objeto: Objeto Shell
clave_o_valor:Subclave o valor a borrar. Para que se borre una subclave, deberá acabar con una barra de división entera o (back slash: "") y si se debe borrar un valor se hará sin la barra de división entera.
Ejemplos de RegDelete
JScript
Este ejemplo borra el valor Directorio Inicio de la clave HKEY_CURRENT_USERSoftwareMiPrograma:
var obj_Shell = WScript.CreateObject("WScript.Shell");
obj_Shell.RegDelete("HKCUSoftwareMiProgramaDirectorioInicio");
Este ejemplo borra la clave HKEY_CURRENT_USERSoftwareMiPrograma:
var obj_Shell = WScript.CreateObject("WScript.Shell");
obj_Shell.RegDelete("HKCUSoftwareMiPrograma");

VBScript
Este ejemplo borra el valor DirectorioInicio de la clave HKEY_CURRENT_USERSoftwareMiPrograma:

Set obj_Shell = WScript.CreateObject("WScript.Shell")
obj_Shell.RegDelete "HKCUSoftwareMiProgramaDirectorioInicio"
Este ejemplo borra la clave HKEY_CURRENT_USERSoftwareMiPrograma:
Set obj_Shell = WScript.CreateObject("WScript.Shell")
obj_Shell.RegDelete "HKCUSoftwareMiPrograma"

Una limitación de trabajar con WSH para esta tarea, en comparación con REG,es que no se pueden borrar los valores contenidos sin borrar la clave,pues los valores habría que ir pasándolos uno a uno y en caso de que noexista uno se produciría un error que interrumpiría el script. Hay dos formas de subsanar este error:
Usando try y catch en JScript o OnError Resume Next en VBScript. Esto nos obliga a escribir en el scriptcada uno de los valores que contiene o puede contener la clave. Es un procedimiento costoso que no paso a detallar (quizás en una ampliación de este tip).
Borrando toda la clave y volviendo a crearla posteriormente. Esto nos obliga a ver también el método RegWrite:

JScript:
objeto.RegWrite(nombre, valor[, tipo]);

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

Parámetros
objeto: Objeto Shell.
clave_o_valor: Subclave o valor a crear. Si es una subclave deberá acabar con barra de división entera (back slash: "").
contenido:si se crea una clave es el contenido del valor predeterminado, si secrea un valor es el contenido del valor. Si la clave o el valor ya existían, cambia el contenido del valor predeterminado o el valor segúnproceda.
tipo: REG_SZ, REG_EXPAND_SZ, REG_DWORD o REG_BINARY, cualquier otra provocará que RegWrite devuelva E_INVALIDARG.
Ejemplos de RegWrite:
JScript

Creaciónde la clave HKEY_CURRENT_USERSoftwareMiPrograma 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("HKCUSoftwareMiPrograma", "Este es mi programa");
obj_Shell.RegWrite("HKCUSoftwareMiProgramaDirectorioInicio", "d:MiPrograma", "REG_SZ");
Una vez creados claves y valor anteriores podemos cambiarlos:

var obj_Shell = WScript.CreateObject("WScript.Shell");
obj_Shell.RegWrite("HKCUSoftwareMiPrograma", "Este es mi programa cambiado");
obj_Shell.RegWrite("HKCUSoftwareMiProgramaDirectorioInicio", _ "d:MiProgramaCambiado", "REG_SZ");
VBScript

Creaciónde la clave HKEY_CURRENT_USERSoftwareMiPrograma con el valorpredeterminado "Este es mi programa" y con el valor "DirectorioInicio"con el contenido "d:MiPrograma":

Set obj_Shell = WScript.CreateObject("WScript.Shell")
obj_Shell.RegWrite "HKCUSoftwareMiPrograma", "Este es mi programa"
obj_Shell.RegWrite "HKCUSoftwareMiProgramaDirectorioInicio",
"d:MiPrograma", "REG_SZ"

Una vez creados claves y valor anteriores podemos cambiarlos:

Set obj_Shell = WScript.CreateObject("WScript.Shell")
obj_Shell.RegWrite "HKCUSoftwareMiPrograma", "Este es mi programa cambiado"
obj_Shell.RegWrite "HKCUSoftwareMiProgramaDirectorioInicio", _
"d:MiProgramaCambiado", "REG_SZ"

Por tanto, para borrar una clave y después recrearla se haría de la siguiente forma:
JScript

var obj_Shell = WScript.CreateObject("WScript.Shell");
obj_Shell.RegDelete("HKCUSoftwareMiPrograma");
obj_Shell.RegWrite("HKCUSoftwareMiPrograma", "Este es mi programa");
VBScript

Set obj_Shell = WScript.CreateObject("WScript.Shell")
obj_Shell.RegDelete "HKCUSoftwareMiPrograma"
obj_Shell.RegWrite "HKCUSoftwareMiPrograma", "Este es mi programa"

4 Usando archivos INF

Los archivos de información de instalación (INF) permiten realizar tareas como:
Instalar documentos.
Personalizar equipos por medio del registro.
Actualizar componentes.
Copiar y ejecutar paquetes de instalación.
Deshabilitar características eliminando archivos.

Suaspecto es parecido al de los archivos REG o INI. está dividido ensecciones, definidas por un nombre encerrado entre corchetes y dentrode cada sección puede haber un número indeterminado de líneas.

Todoarchivo INF debe tener una sección [Version] que tiene una únicaentrada Signature; esto identifica al archivo como INF válido:

[Version]
Signature=$CHICAGO$

Los valores posibles de Signature son:
Valor
Significado

$Windows NT$
Sistemas operativos de núcleo NT

$Windows 95$
Sistemas operativos Windows 9x/Me

$Chicago$
Todos los sistemas operativos Windows


Cuandose ejecuta un archivo INF (click derecho sobre él y seleccionar"Instalar") lo primero que hace el sistema es buscar la sección[DefaultInstall], que contiene llamadas a las secciones que contienenlas líneas que se ejecutarán. Esto lo realiza por medio de una serie depalabras clave que identifican el tipo de tarea que realizará la listade secciones (separadas por comas) que tiene asignada. El formato deestas entradas es:

acción=sección[,sección]...

Algunos de las acciones son:
AddReg: Secciones que añaden claves y valores al registro.
CopyFiles: Secciones que copian archivos.
CopyINF:Secciones que copian archivos INF. Sólo disponible a partir de XP, sibien se puede usar en Windows 2000 instalando cocpyinf que viene en elDriver 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 líneas de los archivos INI.
UnregisterDlls: Secciones que eliminan el registro de DLL"s.

Esigual el orden en que se escriban las acciones en la sección[DefaultInstall], pues el sistema establecerá el orden según lasacciones; DelReg se ejecutará antes que AddReg, por ejemplo.

Unavez vista esta breve introducción a los ficheros INF veremos cómopodemos quitar calves y valores del registro usando este tipo deficheros. Recapitulando vemos que necesitaremos definir la sección[Version], la sección [DefaultInstall]. Ahora, en la sección[DefaultInstall], deberemos crear una entrada de tipo DelReg que apuntea una sección personalizada donde aparecerán las entradas que seejecutarán para borrar claves y/o valores; a esta sección (en elejemplo) la llamaremos [BorraEsto]:

[DefaultInstall]
DelReg=BorraEsto

En esta sección que crearemos, pondremos una línea por cada clave o valor a borrar, con la siguiente sintaxis:

Clave troncal, Clave[,Valor]

Parámetros
Clavetroncal: en nombre largos o cortos, es decir HKCR (oHKEY_CLASSES_ROOT), HKCU (o HKEY_CURRENT_USER), HKLM (oHKEY_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.

Contodo esto, un ejemplo de fichero INF que borrara el valorDirectorioInicio de la clave HKEY_CURRENT_USERSoftwareMiPrograma yque borrase la clave HKEY_CURRENT_USERSoftwareMiProgramaPreferenciasquedaría así:

[Version]
Signature=$Chicago$

[DefaultInstall]
DelReg=BorraEsto

[BorraEsto]
HKCU,SoftwareMiPrograma,DirectorioInicio
HKEY_CURRENT_USER,SoftwareMiProgramaPreferencias

Porúltimo, si queremos que se borren todos los valores contenidos en unaclave borrando la clave y recreándola, deberemos crear una sección[CreaEsto] invocada en una línea AddReg de la sección [DefaultInstall]:

[DefaultInstall]
AddReg=CreaEsto

En esta sección [CreaEsto] crearemos una línea por cada clave o valor que queramos crear. La sintaxis es:

Clave troncal, [clave], [valor], [tipo], [contenido]

Parámetros
Clavetroncal: en nombre largos o cortos, es decir HKCR (oHKEY_CLASSES_ROOT), HKCU (o HKEY_CURRENT_USER), HKLM (oHKEY_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 seestablece un dato en contenido, el dato será el contenido del valorpredeterminado de la clave.
Tipo: Tipo de dato que contiene el valor expresado en formato numérico hexadecimal. Puede ser:

Tipo
Significa

0x00000000
Dato REG_SZ

0x00000001
Dato REG_BINARY

0x00010000
Dato REG_MULTI_SZ

0x00010001
Dato REG_DWORD

0x00020000
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 aplicación"):

[Version]
Signature=$Chicago$

[DefaultInstall]
DelReg=BorraEsto
AddReg=CreaEsto

[BorraEsto]
HKCU,SoftwareMiPrograma

[CreaEsto]

HKCU,SoftwareMiPrograma,,,"Esta es mi aplicación"

Vale,vale, muy bonito todo, pero ¿cómo hago para que un fichero INF seejecute de otra manera que no sea click derecho sobre el y pulsar sobre"Instalar"? Pues lo haremos desde línea de comandos o un fichero BATcon la siguiente línea:

%SystemRoot%System32 undll32.exe setupapi,InstallHinfSection DefaultInstall 132 ruta_nombre_fichero.INF
Palabras claves
publicado por rewind a las 22:36 · Sin comentarios  ·  Recomendar
 
Más sobre este tema ·  Participar
Comentarios (0) ·  Enviar comentario
Enviar comentario

Nombre:

E-Mail (no será publicado):

Sitio Web (opcional):

Recordar mis datos.
Escriba el código que visualiza en la imagen Escriba el código [Regenerar]:
Formato de texto permitido: <b>Negrita</b>, <i>Cursiva</i>, <u>Subrayado</u>,
<li>· Lista</li>
Buscador
Blog   Web
Al margen
hola bievenidos a este rincon de trucos y pistas
bievenidos a este rincon de trucos y pistas donde podras encontrar manuales y trucos de varias cosas espero que te sirva de ayuda
Calendario
Ver mes anterior Abril 2024 Ver mes siguiente
DOLUMAMIJUVISA
123456
78910111213
14151617181920
21222324252627
282930
Tópicos
» General (138)
» trucos blog (1)
Nube de tags  [?]
Secciones
» Inicio
Enlaces
» musica 80 90 y mas
» tu sitio de descargas
Más leídos
» Live CD Windows XP, Herramienta de rescate, reparación de Sistemas Operativos
» BIOS, SETUP, CMOS… qué diferencia hay? Roger Lopez Add Seguramen
» Como ver las fotos en Facebook de cualquier persona
» CRear una tarjeta de invitación infantil con photoshop
» Error generic host process for win 32. Solucion muy facil
» H u e v o s d e P a s c u a
» Manuales de Office 2007 (Word, Excel, PowerPoint, Access)
» NetBeans - Tutorial Para Novatos
» [Tutorial] Como crear una web con Php-Nuke
» Tutorial para Office 2007: ¿Cómo validarlo?
Se comenta...
» Manuales de Office 2007 (Word, Excel, PowerPoint, Access)
83 Comentarios: carlos, orsyspavjh, fwincfkbfc, [...] ...
» Como ver las fotos en Facebook de cualquier persona
4 Comentarios: tpfwnlhpwr ...
» NetBeans - Tutorial Para Novatos
25 Comentarios: lopez, gerardo, goodjonsen, [...] ...
» CRear una tarjeta de invitación infantil con photoshop
4 Comentarios: yoselyn espinoza, Amanda, mauricio ...
» estamos aqui ahora
5 Comentarios: Lolita, evelyn, evelyn, [...] ...
Marcadores flenk
FULLServices Network | Blog gratis | Privacidad