dll - codigo - description activex component can t create object código duro 24 error número 429
El componente ActiveX no puede crear un objeto (10)
Acabo de instalar una aplicación de terceros en mi servidor de Windows Server 2008 y obtengo el
Componente ActiveX no puede crear objeto
mensaje cuando intento acceder utilizando CreateObject
en VBScript.
Definitivamente está instalado y existe en "Programas y características". ¿Alguien tiene una lista de cosas que puedo verificar para descubrir qué está pasando?
Ahora he intentado registrar el archivo DLL utilizando regsvr32.exe /i bob.dll
como se sugiere, pero regsvr32.exe /i bob.dll
este error:
Se cargó el Módulo "Bob.dll" pero no se encontró el DllRegisterServer de punto de entrada.
Asegúrese de que "Bob.dll" sea un archivo DLL o OCX válido y vuelva a intentarlo.
Debo señalar que esta es una aplicación de 32 bits en una máquina de 64 bits en este momento. También funciona bien en mi máquina, que es Windows XP de 32 bits.
Además, cuando registra el componente, asegúrese de utilizar la versión de 32 bits de regsvr32.exe. Si simplemente ejecuta regsvr32.exe en un aviso elevado, tomará por defecto la versión estándar de 64 bits (que curiosamente se encuentra en C: / Windows / System32)
La versión que creo que necesita se encuentra en C: / Windows / SysWow64 / regsvr32.exe
He tenido el mismo problema en un programa de VB6 que estoy escribiendo, donde un formulario utiliza un objeto ScriptControl para ejecutar los archivos de VBS seleccionados por el usuario.
Funcionó bien hasta el otro día, cuando de repente comenzó a mostrarse ''Error de tiempo de ejecución 429'' cuando el VBScript intentó crear un Scripting.FileSystemObject.
Después de volverme loco por un día entero, probando todas las soluciones propuestas aquí, comencé a sospechar que el problema estaba en mi aplicación.
Afortunadamente, tenía una versión de copia de seguridad de ese formulario: comparé sus códigos y descubrí que inadvertidamente había establecido la propiedad UseSafeSubset de mi objeto ScriptControl en True.
Era la única diferencia en el formulario, y después de restaurar la copia de seguridad funcionó como un amuleto.
Espero que esto pueda ser útil para alguien. ¡Arriba con VB6! :-)
Max - Italia
La aplicación está intentando crear un objeto COM e incluso si existe esa DLL COM, puede depender de otra DLL que no esté instalada. Puede usar DependencyWalker para averiguar si este es el caso.
Realmente parece que el objeto al que hace referencia no está registrado en el sistema. Sé que dijiste que está instalado, pero eso no significa necesariamente que esté registrado. Para confirmar esto, busque el IDProg que utilizó en su registro.
Ejemplo para este código:
set objFSO = CreateObject("Scripting.FileSystemObject")
Scripting.FileSystemObject
en el registro. Luego miraría la clave de registro por encima del valor encontrado, para el valor de InProcServer32
. Esto le dará la ruta al archivo ActiveX desde el que se registró (para Scripting.FileSystemObject
el archivo es "c: / windows / system32 / scrrun.dll").
Si no puede encontrar su progID en el registro, entonces no está registrado en su sistema, que es su problema. Si no está registrado, debe averiguar qué archivo lo registra, que suele ser .ocx o .dll en la misma ruta de la carpeta de su aplicación de terceros, y luego registrar estos archivos. Aquí está el comando para registrar un archivo:
regsvr32 /i "c:/windows/system32/scrrun.dll"
Incluso si encuentra el valor de progID en el registro y hace referencia a un archivo que está presente en su sistema, es posible que desee intentar volver a registrar el archivo. Descubrí que a veces el registro se rompía de alguna manera en alguna parte y era más fácil volver a registrar los archivos, luego era para solucionar el problema.
Resulta que esta aplicación funciona en VBScript, tuve que hacer dos cosas.
- Ejecute RegAsm.exe para registrar las DLL.
- Ejecute C: / Windows / SysWOW64 / cscript.exe para ejecutar mi VBScript.
Gracias por toda tu ayuda.
TAMBIÉN, si estos no funcionan, consulte la otra respuesta here sobre cómo habilitar aplicaciones de 32 bits.
Sé que esta es una pregunta antigua y ya tiene una respuesta marcada como correcta, pero eso no me ayudó.
Para cualquier persona pobre que venga de esta manera en el futuro, verifique la configuración de su navegador-
Para mí, usando IE, la solución fue ir a Herramientas / Opciones de Internet, pestaña Seguridad, para la zona correspondiente, "nivel personalizado" y verificar la configuración de ActiveX. La configuración de "Inicializar y guiar los controles ActiveX no marcados como seguros para las secuencias de comandos" a "Habilitar" solucionó este problema para mí
Si es un COM / Active X de 32 bits, utilice la versión de 32 bits de cscript.exe / wscript.exe ubicada en C: / Windows / SysWOW64 /
También encuentro el mismo error en vbscript.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Solución:
Abra la línea de comando, ejecute:
regsvr32 /i "c:/windows/system32/scrrun.dll"
y funciona
También vale la pena comprobar que tienes "Habilitar aplicaciones de 32 bits" establecido en True en la configuración avanzada de DefaultAppPool dentro de IIS.
Tuve el mismo problema con Excel, estaba tratando de usar una DLL COM 32 con una versión de Excel de 64 bits y obtuve este error. Reconstruyo el COM dll a una versión de 64 bits y el error desaparece. Así que asegúrese de que su dll COM tenga la misma arquitectura (x86 frente a x64) que su aplicación.