Página principal Sobre mi Premios recibidos Links de Interés Contacto Blogs de referencia

Translate

domingo, 21 de agosto de 2016

Textual description of firstImageUrl

Windows 10: Registrar librerías DLL o Controles ActiveX - regsvr32.

En el laboratorio de hoy trabajaremos con la herramienta Regsvr32. Regsvr32 es una utilidad de línea de comandos que sirve para registrar o para desregistrar controles OLE, como pueden ser librerías DLL o Controles ActiveX, en el Registro del sistema de Windows. En nuestro ejemplo, el sistema operativo con el que vamos a trabajar será un Windows 10 de 64bits.

Podéis acceder también, al canal de YouTube de Pantallazos.es, donde encontrareis el vídeo tutorial en el que llevamos a cabo el procedimiento de registrar librerías DLL o Controles ActiveX usando  la herramienta regsvr32.



Podéis acceder y suscribiros al canal de Youtube de Pantallazos.es en el enlace que mostramos a continuación:

https://www.youtube.com/c/pantallazoses

Regsvr32.exe se instala, en las versiones de Windows de 32bits, en la carpeta %systemroot%\System32.

En cambio, con los sistemas operativos de Windows de 64 bits, encontraremos instaladas en nuestro sistema operativo dos versiones del archivo Regsvr32.exe:

Una versión de 32bits que se encuentra en la carpeta %systemroot%\SysWoW64\regsvr32.exey también una versión de 64bits que se alojará por defecto en la carpeta %systemroot%\System32\regsvr32.exe.

En un sistema operativo Windows de 64 bits, descubriremos dos carpetas que contienen librerías dll la carpeta System32 y la carpeta SysWOW64. A pesar de sus nombres, System32 contiene los archivos de 64 bits, mientras que SysWOW64 contiene todas las librerías de 32 bits.

Deberás copiar tu librería donde corresponda.

%systemroot%\System32\regsvr32.exe %systemroot%\SysWoW64\regsvr32.exe
Regsvr32 tiene los modificadores siguientes:

/u - Eliminar del Registro el servidor 
/i - Llamar a DllInstall y pasarle un parámetro opcional [cmdline]; cuando se utiliza con /u, llama 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

Para usar Regsvr32, escribiremos cmd en el recuadro de búsqueda de Cortana, pero no presionaremos la tecla Enter en nuestro teclado todavía.

En la parte superior del menú, donde se nos mostrarán las coincidencias que estén relacionadas con los parámetros de búsqueda que hemos introducido, seleccionaremos el icono de Símbolo del sistema con el botón derecho de nuestro ratón. Aparecerá un nuevo menú desplegable donde seleccionaremos la opción Ejecutar como administrador.

Cortana

En la ventana negra de Símbolo del sistema abierta con privilegios elevados, podremos registrar nuestros controles DLL o ActiveX utilizando REGSVR32 de la forma siguiente.

%systemroot%\[SysWoW64 o System32]\REGSVR32 [NOMBRE_DLL_O_ActiveX]

Si las DLL o Controles ActiveX se encuentra en la carpeta System32 no es necesario que especifiquemos la ruta de la carpeta en la construcción de la orden.

Lo mismo sucederá con las versiones de Windows de 64bits, si las librerías de Windows o Controles ActiveX se encuentran en la carpeta SysWoW64, no será necesario especificar la ruta en la construcción del comando.

En nuestro laboratorio, en primer lugar situaremos nuestro path en el directorio c:\windows\syswow64.

Ejecutaremos la orden siguiente:

cd c:\windows\syswow64

Seguidamente, ejecutaremos el comando que registrará nuestra DLL o Controle ActiveX

regsvr32.exe mscomctl.ocx

Si hemos tenido éxito, nos aparecerá una nueva ventana emergente que nos mostrará el mensaje siguiente.

RegSvr32

DLLRegisterServer se realizó correctamente en mscomctl.ocx

Símbolo del sistema, podremos registrar nuestros controles DLL o ActiveX utilizando REGSVR32

Si por lo contrario, recibimos siguiente mensaje de error, en un sistema operativo Windows de 64bits:

Error al registrar una DLL de 32 bits en una versión de 64 bits de Windows.

Deberemos proceder del modo siguiente, si la DLL de 32bits se encuentra en la carpeta %systemroot%\System32, la moveremos a la carpeta de 64bits %systemroot%\SysWoW64.

Repetiremos la acción, abriremos una nueva ventana de símbolo del sistema con privilegios elevados y ejecutaremos el comando siguiente:

%systemroot%\SysWoW64\regsvr32 [Ruta_de_acceso_completa_de_las_DLL][NOMBRE_DLL_O_ActiveX]

Espero os sea de utilidad.



Enlaces relacionados

15 comentarios:

  1. excelente información, gracias saludos.

    ResponderEliminar
  2. Buen dia
    estoy tratando de registrar un ocx y me sale este mensaje: "asegurese que el archivo binario este almacenado en la ruta.........o depurelo para comprobar si hay problemas en el archivo binario o los archovos .dll dependientes"
    mi SO es 64 bits el ocx esta en la carpeta : c:\windows\SysWow64\regsvr32.exe imgedit.ocx
    Que puede ser?
    Gracias

    ResponderEliminar
    Respuestas
    1. Buenas tardes Martin,

      En alguna ocasión me ha sucedido lo que comentas y lo he solucionado abriendo Panel de control después Cuentas de usuario y finalmente protección infantil\Cuentas de usuario

      Ahí encontraras la opción "Cambiar configuración de control de cuentas de usuario", accederemos.

      En la ventana de control de cuentas, bajaremos el nivel de seguridad al mínimo y aceptaremos.

      Espero que te sea de utilidad. Encontrarás también tutoriales en nuestro canal de YouTube.

      Un Saludo

      Eliminar
  3. Disculpe, lo hice como esta aquí descrito pero me aparece en un mensaje:
    -- Se cargo el modulo "msvcr71.dll", pero no se encontró el punto de entrada DllRegisterServer. Asegúrese de que "msvcr71.dll" es un archivo DLL o OCX valido e inténtelo de nuevo. -

    ¿Como arreglo eso?

    ResponderEliminar
    Respuestas
    1. Buenos dias PCRM, Has abierto la ventana de simbilo del sistema con permisos elevados de administrador?

      Posiblemente es ese tu problema.

      Recuerda que también tenemos un canal de YouTube al que puedes suscribirte.

      un saludo, ya me dirás si lo has solucionado.

      Eliminar
  4. Buenas noches

    Lo que pasa es que ya segui las instrucciones y comandos pero me sale una ventana diciéndome que se cargo el modulo DLL pero no se encontro el punto de entrada DllRegisterServer. Y me insta a asegurarme de que sea un archivo DLL o OCX valido e intentarlo de nuevo.

    ¿Que debo hacer ahora en este caso?

    ResponderEliminar
    Respuestas
    1. Este problema suele producirse si intenta registrar una DLL mediante Regsrv32 habiendo iniciado la sesión con una cuenta que tenga que no tiene permisos administrativas, las cuentas de usuario sin permisos de administrador no puede escribir en el registro o cambiar archivos en la carpeta System32.

      Para resolver el problema, deberás iniciar sesión usando una cuenta de administrador y, a continuación, registrar la DLL.

      Eliminar
  5. Yo tambien segui todas las instrucciones y comandos pero me sale una ventana que dice "Se cargo el modulo DLL pero no se encontro el punto de entrada DllRegisterServer. Asegurese de que el archivo se encuentre presente y que sea un archivo DLL valido e intentelo de nuevo." el archivo que intento poner es un ISDone.dll

    ResponderEliminar
    Respuestas
    1. Este problema suele producirse si intenta registrar una DLL mediante Regsrv32 habiendo iniciado la sesión con una cuenta que tenga que no tiene permisos administrativas, las cuentas de usuario sin perimisos de administrador no puede escribir en el registro o cambiar archivos en la carpeta System32.

      Para resolver el problema, deberás iniciar sesión usando una cuenta de administrador y, a continuación, registrar la DLL.

      Eliminar
  6. Hice todos los pasos. Pero me sale el error al cargar cargar el módulo..... asegurese de que el archivo esté almacenado en la ruta indicada...

    ResponderEliminar
    Respuestas
    1. Buenos días,

      Asegúrate que el modulo se encuentra en la carpeta %systemroot%\[SysWoW64 o System32]\REGSVR32 [NOMBRE_DLL_O_ActiveX]

      Eliminar
  7. Igual me sale el mismo error, al parecer mo se puede corregir

    ResponderEliminar
    Respuestas
    1. Este problema suele producirse si intenta registrar una DLL mediante Regsrv32 habiendo iniciado la sesión con una cuenta que tenga que no tiene permisos administrativas, las cuentas de usuario sin permisos de administrador no puede escribir en el registro o cambiar archivos en la carpeta System32.

      Para resolver el problema, deberás iniciar sesión usando una cuenta de administrador y, a continuación, registrar la DLL.

      Asegúrate también, que el modulo se encuentra en la carpeta %systemroot%\[SysWoW64 o System32]\REGSVR32 [NOMBRE_DLL_O_ActiveX].

      Recuerda que también tenemos una canal de YouTube al que puedes suscribirte si te interesan nuestros contenidos.

      Eliminar
  8. Buen dia

    ¿Es posible registrar una dll en un servidor y acceder a ella desde un cliente?

    Ejemplo: Quieron instalar una dll en una maquina virtual para que los usuarios puedan correr una macro desde excel utilizando esta dll.

    ¿Es esto posible?
    ¿Ustedes conocen el proceso? y lo mas importante es, como hacen con los permisos del registro para que el windows de la maquina cliente reconozca la dll del servidor?

    Esperando contar con su ayuda, me despido

    Saludos

    Ricardo Reyes

    ResponderEliminar