GUI regsvr32 - Registrar librerías (dll, ocx)

Creado: Miércoles, 02 Febrero 2011 Escrito por karmany Visto: 85142
Tamaño de letra:

Introducción

Nota: Desde este artículo, al final del mismo, podrás descargar un ejecutable compilado (VB6) con código fuente incluido.

¿Sabes cómo se registra una librería en Windows? Para registrar una librería se hace uso de una herramienta del Sistema Operativo de Windows, que se ejecuta desde la linea de comandos y sirve tanto para registrar librerías y controles ActiveX como para desregistrarlos. Esta aplicación se denomina: RegSvr32 (Microsoft© Register Server) y la puedes encontrar tú mismo en el directorio de Windows => system32 con el nombre de regsvr32.exe. Cuando una librería o control ActiveX se registra, esa información queda guardada en el registro de Windows en lo que se conoce como (dejarme echar un vistazo a mi libro de teoría...): "las subclaves de identificación de clases (CLSID)". En Windows un número CLSID identifica a un objeto o control Active X y sus propiedades. Simplemente busca en el registro de Windows el nombre de una librería que hayas registrado y verás todo esto. La estructura de un número CLSID es: {aabbccdd-eeff-gghh-iijj-kkllmmnnoopp} donde cada par de letras es un número hexadecimal.

Para ver el uso de regsvr32, simplemente en Windows XP vas al menú Inicio de Windows y seleccionas ejecutar. Desde Vista o Windows 7 vas al menú principal y donde pone buscar programas y archivos tecleas ejecutar, verás que arriba de donde escribes se mostrará un programa llamado Ejecutar, debes pulsar en él. Aparecerá una ventana en la que podemos escribir lo siguiente: regsvr32. Por ejemplo una imagen en Windows 7 (lo mismo para XP y Vista):

 

Ejecutar en Windows7

 

Si ahora pulsamos en Aceptar, veremos una ventana similar a esta otra:

 

regsvr32

 

Esa ventana es simplemente de información, no has hecho nada, así que no te preocupes. Para utilizar bien regsvr32 es necesario introducirle una serie de parámetros como muestra la imagen anterior. Es muy sencillo de manejar. Por ejemplo, si yo quiero registrar un ocx que tengo en C:\, hago lo siguiente: voy como he explicado antes a la ventana Ejecutar y escribo en esa caja de texto lo siguiente:

regsvr32 C:\ejemplo.ocx

Si todo ha ido bien, aparecerá una ventana indicándome que el proceso se ha realizado satisfactoriamente. Si queremos desregistrarlo, simplemente en la caja de texto de Ejecutar escribiremos lo siguiente:

regsvr32 /u C:\ejemplo.ocx

Si todo ha ido correcto, aparecerá una ventana indicando que ejemplo.ocx ha sido desregistrado correctamente. Si queremos desregistrarlo y además no queremos que nos muestre un mensaje de confirmación tecleamos lo siguiente:

regsvr32 /u /s C:\ejemplo.ocx

¿Por qué es necesario registrar o desregistrar librerías? puede ser necesario por muchos motivos. Cuando registras una librería le "dices" a Windows dónde se encuentra, su nombre, su número CLSID etc... Windows también te indica si una librería es necesaria por varios programas. Cuando se elimina un programa, muchas veces estos últimos no las desregistran pero SÍ eliminan la librería. Esto provoca que Windows siga pensando que esa librería existe, algo que no es cierto. También puede ocurrir que tengas que actualizar un componente ActiveX que por ejemplo tiene algún error, ¿cómo lo haces? Pues desregistrando el componente antigüo, eliminando el archivo antigüo, pegando el archivo actualizado y registrando el archivo actualizado, este es el paso más común y lógico. Seguramente ya te habrás enfrentado alguna vez a registrar una librería.

 

Interfaz Gráfica (GUI) para regsvr32.exe

Cuando una persona tiene un poco de experiencia, simplemente ejecuta regsvr32 desde la cmd (Intérprete de comandos) y comprueba que es muy fácil utilizarlo, sin embargo, es posible que si hace mucho tiempo que no registras ningún componente se te olvide incluso la palabra regsvr32 y pongas regsvr o regsrv32 o regserver o cualquier otro nombre y después de recordar el nombre, si no tienes mucha experiencia, es posible que no sepas cómo utilizarlo. ¿Podría ser el proceso más sencillo?

 

Imagen de regsvr32 GUI

 

Pues bien, para eso he generado este programa llamado GUI RegSvr32 que sirve para registrar o desregistrar librerías desde la interfaz. El programa simplemente trabaja con regsvr32.exe, registra o no las librerías y componentes ActiveX y tienes la opción de mostrar o no mensaje de confirmación. Es muy sencillo de utilizar para los que no quieren usar linea de comandos. El código fuente que usé para generar este programa lo conseguí hace años en la red y no consigo saber quién fue el autor original, aunque es muy sencillo de programar no quiero que los créditos sean míos ya que lo único que he hecho ha sido compilarlo, añadirle alguna extensión (ya que reconocía solamente .dll) y solucionar un error que se producía con las rutas largas motivo por el cual he usado rutas cortas pero el código original no es mío.

Os dejo el enlace de descarga del ejecutable y del código fuente esperando que te puedan ser útil. Como podrás observar, he dejado los comentarios originales y la verdad no me he esmerado mucho, simplemente buscaba algo para uso particular que quiero compartir:

 

Descarga de los archivos (código fuente y ejecutable compilado):

PD. Sé, como ya alguno me ha dicho, que GUI RegSvr32 no realiza todas las funciones de RegSvr32. Es cierto falta /i /n, pero como he dicho, esta utilidad en principio la hice como ayuda propia para el registro rápido de librerías y de este modo a me sirve. También verás que el código fuente es un tanto chapucero pero no quise modificar y ordenar el original, hice dos arreglos rápidos. Otro punto es que sólo registra .dll y .ocx. ¿Trabajas con más extensiones? Si necesitas más y no tienes compilador coméntamelo.

 

Última actualización: Jueves, 07 Junio 2012