8 de junio de 2007

Registrar OCX / DLL en Windows Vista

Antes de Windows Vista cada vez que necesitabamos registrar una libreria ActiveX (OCX, DLL) o un EXE lo podiamos hacer de diversas maneras, una de las comunes era simplemente utilizando el comando REGSVR32 de la suiguiente manera...
regsvr32 [/u] [/s] [/n] [/i[:líneaDeComandos]] nombrelibreria.DLL o OCX
Parámetros:
  • /u: Elimina el registro del servidor.
  • /s: Especifica que regsvr32 se ejecute sin interfaz y que no presente ningún cuadro de mensaje.
  • /n: Especifica que no se invoca DllRegisterServer. Esta opción se tiene que utilizar con /i.
  • /i: líneaComandos Invoca DllInstall y le pasa una [líneaComandos] opcional. Cuando se utiliza con /u, activa la desinstalación de .dll.
  • nombrelibreria.DLL o OCX: Especifica el nombre del archivo .dll que se va a registrar.
  • /?: Muestra Ayuda en el símbolo del sistema.
Al tratar de instalar librerias OCX y/o DLL's en Windows Vista (Asi tambien como arhivos .EXE que necesitan ser registrados) nos damos con la desagradable sorpresa que no se puede, el SO reporta un mensaje de error que dice mas o menos :

Se cargo el modulo Libreria.ocx pero se produjo un error en la llamada a dllRegisterserver (codigo de error: 0x80004005)

Otro error encontrado es:

"Unexpected error; quitting"

Al empezar a indagar con ese problema me di con que los usuarios de VB6 y anteriores tienen el mismo problema asi que e aqui la solucion:

El problema radica fundamentalmente en que Windows Vista hace mucho mas incapie en la seguridad del sistema y ya que cualquiera de estos tipos de archivos son potencialmente peligrosos, a menos que el ususario actual sea el Admnistrador no permitira la registración de estos archivos.

Por lo tanto una solucion es loguearse en el sistema como administrador (Primero debemos activar este usuario ya que por defecto viene deshabilitado y al mismo tiempo desactivar el UAC (User Account Control), todo esto se hace dentro del Panel de control/Control de Usuarios (Debemos aclarar que no alcanza que el usuario actual tenga perfil de administrador debemos logueaes especificamente con la cuenta Administrador o Administrator en su version inglesa)

Una vez hecho esto ya podremos instalar las librerias tal como lo haciamos antes.

Una solucion alternativa y mas rapida es:
  1. Clicear en Inicio
  2. En "Iniciar busqueda" o "Start Search" tipear cmd
  3. Una vez encontrado el icono de cmd en el menu
  4. click derecho en el icono del cmd (command)
  5. elegir la opcion "Run as Administrator" ("Ejecutar como Administrador")
  6. Ir a la carpeta en donde se encuentran las librerias
  7. Tipear nomlibreria.ext /regserver o REGSVR32 nomlibreria.ext (En donde .ext seria OCX/DLL o EXE según el caso)
Esto solucionara el problema y nos permitira probar nuestros sistemas/librerias en el nuevo SO de M$
Para mas información sobre seguridad en windows Vista:

http://technet2.microsoft.com/WindowsVista/en/library/0d75f774-8514-4c9e-ac08-4c21f5c6c2d91033.mspx?mfr=true

Daniel Salazar
www.ZondaSoftware.com.ar
Salta - Argentina

No hay comentarios. :

Publicar un comentario