descargar - VB6 IDE no puede cargar MSCOMCTL.OCX después de la actualización KB 2687323
mscomctl.ocx descargar (15)
Después de horas de esfuerzo, restauración del sistema, registro, anulación del registro de los ciclos 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 la versión "2.0" parece ser la razón de no cargar. Cambiarlo a "2.1" en el bloc de notas resolvió el problema:
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MSCOMCTL.OCX
Por lo tanto, en una situación similar de "No se pudo cargar OCX", una posible forma de resolución es comenzar un nuevo proyecto. Ponga el control en uno de los formularios y verifique el archivo vbp con el bloc de notas para ver qué versión espera.
... O UNA SOLUCIÓN 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 eliminarlo:
NoControlUpgrade=1
Después de que Windows Update instaló la actualización de seguridad KB2687323 , mi proyecto VB6 no se carga. El mensaje de error mostrado es "''[[project_vbp_path] /MSCOMCTL.OCX'' no se pudo cargar - ¿Continuar cargando el proyecto?". Tenga en cuenta que la ruta en el mensaje es la ruta de la carpeta del archivo vbp en lugar de la ruta registrada del control.
Detalles:
- MSCOMCTL.OCX se registra en la carpeta habitual de system32.
- El ejecutable producido exactamente por el mismo proyecto, una hora antes de que la actualización se ejecute bien y cargue el MSCOMCTL.OCX actualizado (lo he comprobado con Process Explorer).
La descripción de la actualización de seguridad indica que MSCOMCTL.OCX tiene una nueva versión fija. Así que revisé las propiedades del proyecto para la casilla de verificación "Actualizar controles ActiveX". Lo intenté de ambas maneras; Comprobado y desactivado en vano. VB6 IDE se negó a cargar el OCX actualizado.
El mismo problema con las macros VBA usando MSCOMCTL.OCX. El problema sigue sin resolverse con soluciones como "reg / unreg mscomctl.ocx". Se utiliza la información anterior de Rumi. Edité mi archivo * .dot, busque # 2.0 # 0, cámbielo a # 2.1 # 0 -> funcionó
El problema se resolvió ejecutando lo siguiente en el símbolo del sistema elevado:
comando:
cd C:/Windows/System32/
regtlib msdatsrc.tlb
o
cd C:/Windows/SysWOW64/
regtlib msdatsrc.tlb
Espero que esto ayude.
En algunas computadoras, he encontrado que la versión "2.0" de MSCOMCTL.OCX
se ha agregado a la lista de KillBits de ActiveX, y por lo tanto el control no podrá cargarse o ejecutarse, incluso en la vista de diseño. La actualización a la versión "2.1" resolverá esto y es la solución recomendada.
En casos críticos, donde tiene que ejecutar un programa "ahora", o no tiene acceso al código fuente, o el control se usa 400 veces en un proyecto modular grande, puede usar un método de "gran martillo" y actualizarlo El registro para volver a habilitar el control:
**
ADVERTENCIA : la edición incorrecta del Registro de Windows puede estropear la computadora. Si no está seguro de lo que está haciendo, déjelo solo o estudie antes de continuar.
**
El claro el KillBit:
- Ejecute el Editor del Registro (regedit.exe o regedt32.exe)
- En el panel de la izquierda, navegue hasta la clave HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Internet Explorer / Compatibilidad con ActiveX {BDD1F04B-858B-11D1-B16A-00C0F0283628}
- En el panel de la derecha, haga doble clic en "Banderas de compatibilidad", cambie el valor de Hex 0x400 (Decimal 1024) a 0, luego haga clic en Aceptar.
- Inicie la aplicación que utiliza la versión "2.0" de MSCOMCTL.OCX; debe funcionar como fue diseñado.
La lista de KillBits de ActiveX está destinada a brindar a Microsoft los medios para deshabilitar los controles que se consideran un riesgo de seguridad, y han diseñado el mecanismo de tal manera que la lista de KillBits de ActiveX se vuelva a aplicar al sistema en momentos aparentemente aleatorios, en además de cuando se instala una actualización, por lo que deberá planear volver a aplicar el cambio de registro. Hacer un archivo de combinación de registro funciona bastante bien, pero no es algo que quiera hacer cada vez que se ejecute la aplicación, porque no es un proceso silencioso (hay formas de hacerlo de manera silenciosa utilizando Windows Scripting, pero tendrá que aprender eso en su propio). El KillBit se verifica solo cuando el control lo solicita una aplicación, por lo que está a salvo de los reinicios una vez que la aplicación se inicia y carga el control.
Este problema apareció misteriosamente para mí hoy. No había hecho ninguna actualización de Windows, así que no sé la causa.
Esto lo arregló (en el símbolo del sistema elevado):
regtlibv12.exe msdatsrc.tlb
La solución para mí es instalar este parche VB6. Estoy en Server2008 (32 bits).
http://www.microsoft.com/en-us/download/details.aspx?id=10019
Me entristece que sigamos hablando de esto en 2014 ... pero aquí está. :)
Del comentario de puetzk: Estos están desactualizados: desea utilizar la Actualización acumulativa del Service Pack 6 de Microsoft Visual Basic 6.0 ( kb957924 ).
No encuentro NoControlUpgrade=1
en mi proyecto vbp. En cambio, me desarrollo tanto en xp como en windows7 x64. Cuando moví el proyecto de la ventana 7 a xp, ocurrió el error.
Por lo que descubro, estos son diferentes:
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MSCOMCTL.OCX
Acabo de cambiar el #2,1
nuevo a #2.0
en el archivo vbp y se puede ejecutar de inmediato. Este tipo de problemas ocurrieron antes, así que espero que Microsoft los explique y los resuelva en consecuencia. Gracias.
Para mí, esta solución funcionó a la perfección: http://home.pacific.net.hk/~edx/bin/readmeocx.txt
Arregla estas dos líneas así:
Object={F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0; COMDLG32.OCX
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0; MSCOMCTL.OCX
Busque en los archivos (.vbp y .frm) las líneas como esta:
Begin ComctlLib.ImageList ILTree
Begin ComctlLib.StatusBar StatusBar1
Begin ComctlLib.Toolbar Toolbar1`
Las líneas pueden ser así:
Begin MSComctlLib.ImageList ILTree
Begin MSComctlLib.StatusBar StatusBar1
Begin MSComctlLib.Toolbar Toolbar1`
Para solucionar el problema:
Haz un archivo por lotes con el siguiente código:
@echo off
reg query "HKEY_CLASSES_ROOT/typelib/{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}/2.1"
if %errorlevel%==0 GOTO DELREGKEY
if %errorlevel%==1 GOTO REGISTEROCX
:DELREGKEY
reg delete hkcr/typelib/{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}/2.0 /f
:REGISTEROCX
if exist %systemroot%/SysWOW64/cscript.exe goto 64
%systemroot%/system32/regsvr32 /u mscomctl.ocx /s
%systemroot%/system32/regsvr32 mscomctl.ocx /s
exit
:64
%systemroot%/sysWOW64/regsvr32 /u mscomctl.ocx /s
%systemroot%/sysWOW64/regsvr32 mscomctl.ocx /s
exit
Puedes intentar comprobar tu registro
- HKEY_LOCAL_MACHINE / SOFTWARE / Classes / TypeLib {831FDD16-0C5C-11D2-A9FC-0000F8754DA1}
Si es la versión 2.1, causará que no se pueda cargar el problema MSCOMCTL.OCX.
Puede restaurar a la versión 2.0 ( no solo copiar el archivo, sino que también debe desregistrar 2.1 y registrar el archivo restaurado )
O
Puedes probar la última versión 2.2
- https://support.microsoft.com/en-us/kb/3096896 (fecha de archivo: 5-Nov-2015)
- https://www.microsoft.com/en-us/download/details.aspx?id=50722
Alguna información de la versión:
- 6.0.88.62 (2.0)
- 6.1.97.82 (2.0)
- 6.1.98.34 (2.1) <<< no me funciona
- 6.1.98.46 (2.2)
Recientemente puse toda mi fuente en una caja de Windows 8 32. Tenía los problemas cargando mscomctl.ocx
con proyectos existentes.
Creé un nuevo proyecto y agregué el control común (todos). Guarda el proyecto y lo vuelve a cargar sin ningún problema.
cuando se comparan los encabezados de proyecto nuevo contra antiguo, el anterior utiliza reference = * / blah blah. Encontré que eliminar esto es reemplazarlo con el Objeto = {blah} solucionado el problema.
Seguí teniendo problemas después de probar las cosas sugeridas aquí. Al final, resultó que tenía la versión incorrecta de mscomctl.ocx
en mi carpeta SysWOW64. Encontré las siguientes versiones dando vueltas:
Mar. 09, 2004 01:00 AM 1,081,616 mscomctl.ocx
Jun. 06, 2012 07:59 PM 1,070,152 mscomctl.ocx
Dec. 08, 2015 03:57 AM 1,070,232 MSCOMCTL.OCX
Obtener el último (1,070,232) solucionó este problema para mí.
Tuve este problema y probé muchas soluciones diferentes. No trabajaron para mí, aunque creo que este error ocurre por un par de razones diferentes. Mi solución está en mi respuesta a esta pregunta aquí:
https://.com/a/15785253/2240058
Vale la pena intentarlo si nada más está funcionando para usted.
Yo uso win7 y tiene el mismo problema. Hoy resolví este problema, a través de la carga con muchos errores en mi proyecto, solo ordeno continuar después de eso goto Proyecto => Componente => Microsoft Windows Common Controls 6.0 (SP6) luego guarde el proyecto (el uso del archivo fue c: / windows / syswow64 / mscomctl.ocx)
El problema:
Los productos de Microsoft Office 2010 (o posterior) 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_ROOT/TypeLib/{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}/2.0
clave de registro. Puede encontrar información detallada sobre este problema here .
Aquí hay otra solución de trabajo:
La solución supone que no ha dañado su registro al eliminar, reemplazar y volver a registrar MSCOMCTL.ocx y COMCTL32.ocx sin anular el registro de los archivos de parches de Office.
Cree un archivo por lotes llamado fix.cmd y coloque los siguientes comandos en él:
regsvr32 /s /u %windir%/SysWOW64/comctl32.ocx
regsvr32 /s /u %windir%/SysWOW64/mscomctl.ocx
del /y %windir%/SysWOW64/comctl32.ocx
del /y %windir%/SysWOW64/mscomctl.ocx
msiexec /passive /norestart /i KB2708437.msi
msiexec /passive /a KB2708437.msi
regtlib %windir%/SysWOW64/msdatsrc.tlb
Descargue de 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: HERE se encuentra un enlace directo a la descarga del Service Pack 6.
Ejecute fix.cmd y el problema se solucionará!
Lo que hace fix.cmd es anular correctamente el registro y luego eliminar los archivos actuales de MSCOMCTL.ocx y COMCTL32.ocx, y luego aplicar el último parche de acumulación de Visual Basic 6 SP6. De hecho, la secuencia de comandos impone que el parche se instale y luego se reinstale al actualizar cada archivo, independientemente de la versión. Finalmente se registra la biblioteca de tipos msdatsrc.tlb.
Por favor, hágamelo saber si esto funciona para usted.
================================================== ====================
Solución avanzada:
Sin embargo, si accidentalmente dañó su registro, necesita obtener tantas versiones de MSCOMCTL.ocx y COMCTL32.ocx que pueda encontrar. Luego, debe comenzar desde la versión más reciente, volver a la versión anterior y registrar y anular el registro de 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é instalada en su sistema y que cause 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 la que se envió con un service pack anterior 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%/SysWOW64/comctl32.ocx
regsvr32 /s /u %windir%/SysWOW64/mscomctl.ocx
del /q %windir%/SysWOW64/comctl32.ocx
del /q %windir%/SysWOW64/mscomctl.ocx
msiexec /passive /norestart /i KB2708437.msi
msiexec /passive /a KB2708437.msi
regtlib %windir%/SysWOW64/msdatsrc.tlb
ADVERTENCIA:
No busque en Internet esos archivos. Para encontrar una versión diferente de los archivos OCX, descargue y extraiga los paquetes oficiales de Microsoft Installer, como los siguientes:
2005 abril - Microsoft KB896559
Diciembre de 2008 - Microsoft KB926857
2009 abril - Microsoft KB957924
2012 mayo - 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.