Saltar al contenido

VB6 IDE no puede cargar MSCOMCTL.OCX después de la actualización KB 2687323

Hola, hallamos la solución a tu pregunta, has scroll y la verás a continuación.

Después de horas de esfuerzo, restauración del sistema, registro, ciclos de cancelación del registro y una noche de sueño, he logrado identificar el problema. Resulta que el archivo del proyecto contiene la siguiente línea:

Object=831FDD16-0C5C-11D2-A9FC-0000F8754DA1#2.0#0; MSCOMCTL.OCX

La información de versión “2.0” parece que fue la razón por la que no se cargó. Cambiarlo a “2.1” en el bloc de notas resolvió el problema:

Object=831FDD16-0C5C-11D2-A9FC-0000F8754DA1#2.1#0; MSCOMCTL.OCX

Entonces, en una situación similar de “OCX no se pudo cargar”, una posible forma de resolución es comenzar un nuevo proyecto. Coloque el control en uno de los formularios y verifique el archivo vbp con el bloc de notas para ver qué versión espera.


O UN MÉTODO MUCHO MÁS FÁCIL:

(He agregado esta sección después del valioso comentario de Bob a continuación)

Puede abrir su archivo de proyecto VBP en el Bloc de notas y encontrar la línea desagradable que impide que VB6 actualice el proyecto automáticamente a 2.1 y lo elimine:

NoControlUpgrade=1

El problema se ha resuelto ejecutando lo siguiente en el símbolo del sistema elevado:

comando:

cd C:WindowsSystem32
regtlib msdatsrc.tlb

o

cd C:WindowsSysWOW64
regtlib msdatsrc.tlb

Espero que esto ayude.

El problema:

Los productos de Microsoft Office 2010 (o posteriores) instalan actualizaciones que rompen la compatibilidad de MSCOMCTL.ocx y COMCTL32.ocx. Desafortunadamente, esto afecta a muchos otros programas como Visual Basic 6 SP6 e incluso Oracle Virtual Box v5. El problema real es HKEY_CLASSES_ROOTTypeLib831FDD16-0C5C-11D2-A9FC-0000F8754DA12.0 registro key. Puede encontrar información de antecedentes detallada sobre este problema aquí.

Aquí hay otra solución de trabajo:

La solución asume que no ha dañado su registro al eliminar, reemplazar y volver a registrar MSCOMCTL.ocx y COMCTL32.ocx sin cancelar el registro de los archivos de parche de Office.

Crea un archivo por lotes llamado fix.cmd y coloque los siguientes comandos en él:

regsvr32 /s /u %windir%SysWOW64comctl32.ocx
regsvr32 /s /u %windir%SysWOW64mscomctl.ocx
del /y %windir%SysWOW64comctl32.ocx
del /y %windir%SysWOW64mscomctl.ocx
msiexec /passive /norestart /i KB2708437.msi
msiexec /passive /a KB2708437.msi
regtlib %windir%SysWOW64msdatsrc.tlb

Descargue desde la actualización de seguridad para Visual Basic 6.0 Service Pack 6:14 de agosto de 2012 el archivo msi y cámbiele el nombre a KB2708437.msi.

Nota: AQUÍ se encuentra un enlace directo a la descarga del Service Pack 6.

Correr fix.cmd ¡Y el problema se solucionará!

Lo que hace fix.cmd es anular el registro correctamente y luego eliminar los archivos actuales MSCOMCTL.ocx y COMCTL32.ocx, y luego aplicar el último parche acumulativo de Visual Basic 6 SP6. De hecho, el script obliga a que el parche se instale y luego vuelva a instalar actualizando todos los archivos, independientemente de la versión. Finalmente registra la biblioteca de tipos msdatsrc.tlb.

Por favor, avíseme si esto funciona para usted.

================================================ ====================

Solución avanzada:

Sin embargo, si ha dañado accidentalmente su registro, necesita obtener tantas versiones de MSCOMCTL.ocx y COMCTL32.ocx que pueda encontrar. Luego, debe comenzar desde la versión más nueva y volver a la anterior y registrarse y anular el registro los archivos ocx.

La última versión de MSCOMCTL.ocx es 6.1.98.39 (v2.1) de mayo de 2012, que es más probable que esté instalado en su sistema y esté causando todos sus problemas.

La versión más antigua (heredada) es la que se envió con Visual Basic 6 en 1998 6.1.97.82 (v2.0), o el enviado con un paquete de servicio temprano 6.1.97.86 en abril de 2005.

Ejemplo:

regsvr32 /s comctl32.6.0.98.34.ocx
regsvr32 /s /u comctl32.6.0.98.34.ocx

regsvr32 /s comctl32.6.0.81.6.ocx
regsvr32 /s /u comctl32.6.0.81.6.ocx 

regsvr32 /s comctl32.6.0.81.5.ocx
regsvr32 /s /u comctl32.6.0.81.5.ocx

regsvr32 /s mscomctl.6.1.98.39.(2.1).ocx
regsvr32 /s /u mscomctl.6.1.98.39.(2.1).ocx

regsvr32 /s mscomctl.6.1.98.34.ocx
regsvr32 /s /u mscomctl.6.1.98.34.ocx

regsvr32 /s mscomctl.6.1.97.86.ocx
regsvr32 /s /u mscomctl.6.1.97.86.ocx

regsvr32 /s mscomctl.6.1.97.82.(2.0).ocx
regsvr32 /s /u mscomctl.6.1.97.82.(2.0).ocx

regsvr32 /s /u %windir%SysWOW64comctl32.ocx
regsvr32 /s /u %windir%SysWOW64mscomctl.ocx

del /q %windir%SysWOW64comctl32.ocx
del /q %windir%SysWOW64mscomctl.ocx

msiexec /passive /norestart /i KB2708437.msi
msiexec /passive /a KB2708437.msi

regtlib %windir%SysWOW64msdatsrc.tlb   

ADVERTENCIA:

No busque esos archivos en Internet. Para encontrar una versión diferente de los archivos OCX, descargue y extraiga los paquetes oficiales de Microsoft Installer, como los siguientes:

Abril de 2005: Microsoft KB896559

Diciembre de 2008: Microsoft KB926857

Abril de 2009: Microsoft KB957924

Mayo de 2012: Microsoft KB2708437

También se recomienda ejecutar CCleaner versión 4.0 o posterior para solucionar cualquier otro problema relacionado con ActiveX en su computadora.

Agradecemos que desees asentar nuestra ocupación poniendo un comentario y valorándolo te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *