Entradas populares

*Publicidad

18/1/11

Uso del Comando Regsvr32.exe en Simbolo de sistema..

Comando que nos sirve para registrar y eliminar del Registro controles OLE, por ejemplo los archivos de controles ActiveX (OCX) o de bibliotecas de vínculos dinámicos (DLL), que pueden registrarse a sí mismos. Esto puede ser necesario para solucionar algunos problemas de Windows, Microsoft Internet Explorer u otros programas.
Para el caso de los programadores les es muy útil cuando la aplicación que han creado no se puede ejecutar en otro equipo, por medio de este comando y teniendo nuestro control ActiveX o biblioteca, podremos lograr que nuestra aplicación funcione en el equipo que nos encontremos.



Uso de Regsvr32.exe


RegSvr32.exe presenta las opciones de línea de comandos siguientes:
Regsvr32 [/u] [/n] [/i[:cmdline]] dllname

/u - Eliminar del Registro el servidor
/i - Llamar a DllInstall y pasarle un parámetro opcional [cmdline]; cuando se utiliza con las llamadas a las dll de desinstalación
/n - No llamar a DllRegisterServer; esta opción se debe utilizar con /i
/s - Silencioso; no mostrar ningún cuadro de mensaje (se agrega con Windows XP y Windows Vista)
Cuando usa Regsvr32.exe, intenta cargar el componente y llamar a su función DLLSelfRegister. Si este intento tiene éxito, Regsvr32.exe muestra un cuadro de diálogo que lo indica. Si el intento no tiene éxito, Regsvr32.exe devuelve un mensaje de error. Esto puede incluir un código de error de Win32.


Breve explicación.


Regsvr32.exe es una aplicación que viene integrada en windows para ayudarnos a registrar controles ActiveX también conocidos en Visual Basic como Controles o Componentes con extension .ocx  y librerías que en Visual Basic son mas conocidas como Referencias estos archivos con extension .dll.


En muchos casos hay programas que nos envían un tipo de error similar a este:
En estos casos es porque el equipo actual no tiene registrado un control que se encuentra en el programa que marca este error.
Este error suele presentarse cuando al ejecutar un programa, el equipo actual no tenga registrada una librería que es vital para ese programa.
Un error muy común se encuentra en proyectos hechos en VB6, ya que al compilar y crear ese proyecto en un archivo .EXE, muchos creen que asi cualquier equipo podra ejecutar tal aplicación y claro que si tienen razón, mientras no trabajen con muchos Componentes o Referencias porque a la hora de querer probar esa aplicación puede que otro equipo no tenga registrados tales componentes o referencias, así que para estos casos nos es útil la aplicación Regsvr32.exe siempre y cuando conozcamos las librerías y los componentes que estamos utilizando.


Como se que librerías y componentes estoy usando y como puedo obtenerlas?


Esta es una pregunta muy común que ocurrirá cuando queramos poder hacer que nuestro programa se pueda ejecutar en cualquier equipo sin los errores ya mencionados, así que lo primero que hay que hacer es conseguir esos componentes y esas librerías que estamos usando, para esto necesitamos ver en VB6 que componentes usamos y a continuación identificaremos la ruta de ese archivo.
Para eso haremos lo siguiente:
Ver los componentes que estamos utilizando.

Identificar la ubicación del archivo, así como su nombre.
Ahora que hemos identificado la ubicación de nuestro componente, ingresamos a tal carpeta y buscamos el archivo con extensión .ocx, ya que lo hemos identificado podremos copiar el archivo y guardarlo en una nueva carpeta para que podamos registrarlo después, recordemos que por cada componente que tengamos activado, tenemos que encontrar el archivo para copiarlo y guardarlo en una nueva carpeta, bien para las librerías hacemos lo mismo.


Visualizaremos las librerías que se están utilizando.
Ubicaremos dirección y nombre de cada librería habilitada.
Ahora que tenemos la ubicación y nombre de nuestra o nuestras librerías, hacemos el mismo procedimiento que hicimos con los componentes(Abrir ubicación >Copiar Archivo>Guardar en una nueva carpeta).
Supongamos que queremos que nuestra aplicación se pueda ejecutar en otro equipo, y tenemos todos los controles, las librerías y la aplicación en nuestro PenDrive(Dispositivo USB) lo primero que haremos para asegurar que nuestra aplicación se ejecute sin error es abrir Símbolo de Sistema:
Teclas Win + R.


Presionamos ENTER.

Nos saldrá la pantalla de símbolo se sistema.

Simulación de Símbolo de sistema.
Ahora imaginemos que nuestra nueva carpeta que contiene todos los componentes y librerías necesarios para el correcto funcionamiento de la aplicación  y la aplicación que hicimos se encuentran en nuestro PenDrive en una carpeta llamada X, dependiendo de la ubicación de nuestro PenDrive.
Carpeta del PenDrive con ubicación F:

 Como la letra mas común es la F: para identificar un PenDrive colocaremos en la aplicación de Símbolo de sistema(Pantalla negra), la letra F seguida de dos puntos :(F:), y presionamos ENTER, notemos que podremos seguir escribiendo, así que ahora escribiremos "cd x" y presionaremos ENTER.
Lo que haremos a continuación sera identificar el nombre de cada componente completamente por ejemplo tenemos dos archivos .ocx, uno llamado MSADODC.ocx y el otro llamado MSHFLEXGRID.ocx mientras que también tenemos una librería .dll, llamada MSADO15.dll, cuando sepamos los nombres de estos archivos podremos utilizar la aplicación Regsvr32.exe desde Símbolo de Sistema.
Lo primero que hay que hacer es copiar nuestro componentes(archivos .ocxa la ruta C:\Windows\System32, si nos pide reemplazo de archivo no lo haremos, ahora que ya están en esta carpeta nuestros componentes teclearemos en Símbolo de sistema(Pantalla Negra):
Regsvr32 NombreDeTuArchivo.ocx
En nuestro caso colocaremos Regsvr32 MSADODC.exe y hacemos lo mismo pero con los demás componentes y con nuestra librería, así como se ve en la siguiente imagen:
Uso del Regsvr32 con el componente llamado MSADODC.ocx, tambien conocido en VB6 como  ADODC(Barrita con 4 flechas para enlazar una aplicación hecha en VB6 con una base de datos existente).


Si hicimos todo correcto nos aparecerá un mensaje similar a este pero con el nombre del componente o librería registrada con éxito.


Mensaje de la aplicación Regsvr32 que identifica una reacción positiva al registrar algún control o librería correctamente.




Y bien esto solo es un pequeño aporte para aquellos que como yo quieren que sus aplicaciones puedan ejecutarse en cualquier equipo aunque no me ha dado fallas, puede que tenga algunas, esto mas que nada para aquellos estudiantes del Conalep 236 que piensan que las computadoras andan fallando y cuando le piden ayuda a los maestros les hagan creer que es la computadora la que en verdad esta fallando, esto es lo que los maestros les hacen creer cuando en verdad no saben todo esto y bien si no queremos hacerlo todo esto desde Símbolo de sistema, podremos hacer un archivo .bat y antes de ejecutar el programa abrimos el archivo .bat para que haga el trabajo duro por nosotros.
Para crear el archivo .bat abriremos nuestro Bloc de Notas y escribiremos lo siguiente:


@echo off
copy MSADODC.ocx c:\Windows\System32\MSADODC.ocx
copy MSHFLEXGRID.ocx c:\Windows\System32\MSHFLEXGRID.ocx
copy MSADO15.dll c:\Archivos de Programa\Common Files\MSADO15.dll
Regsvr32 MSADODC.ocx
Regsvr32 MSHFLEXGRID.ocx
Regsvr32 MSADO15.dll
exit


Notemos antes que nada y debemos de tener en cuenta el nombre de nuestros archivos .ocx y .dll no siempre van a ser los mismos así que se repiten los dos comandos(Copy y Regsvr32) por cada nuevo archivo .ocx o .dll que tengamos de mas.
Cabe mencionar que las librerías(archivos .dll), no siempre se encuentran en una carpeta similar a los archivos .ocx, asi que siempre que usemos  el comando COPY necesitaremos saber que ruta anterior tenia ese archivo para poder guardar nuestra libreria en la ruta correspondiente.


Bien ahora que escribimos todo lo anterior podremos guardar nuestro archivo, cuidando que acabe el nombre en .bat, no importa la ruta donde se guarde este archivo ni el nombre siempre que termine en .bat, ejemplo:
Ejemplo de nombre de archivo, al momento de guardarlo.


Bien ahora que tenemos nuestro archivo podremos utilizarlo antes de ejecutar nuestra aplicación para que no presente errores, cuidando seguir todos los procedimientos ya mencionados.

No hay comentarios:

Publicar un comentario

Entrar