Obtener referencia de AutoIt trabajando en C#
com (2)
Me estoy tirando de pelo en este ...
Tengo una aplicación heredada que construí hace unos años que usa AutoItX, todo funciona bien.
Ha llegado el momento de intentar actualizar la aplicación, así que la actualicé a VS2012 / .NET4 y simplemente no puedo obtener una referencia a la biblioteca de AutoItX para que funcione.
He instalado la aplicación, he registrado el dll con regsvr32, intenté todas las combinaciones de configuración de propiedades en la referencia misma (Incrustar tipos de interoperabilidad / aislado), pero no me gustó.
El error que sigo recibiendo cada vez que intento crear un objeto AutoItX3 es:
La recuperación de la fábrica de clase COM para el componente con CLSID {1A671297-FA74-4422-80FA-6C5D8CE4DE04} falló debido al siguiente error: 80040154 Clase no registrada (excepción de HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
¿Es un problema que esté en una máquina de 64 bits? No estoy tratando de usar la versión DLL de 64 bits.
De acuerdo, la solución fue:
- Abra regedit * 32 (c: / windows / syswow64 / regedit)
- Busque AutoItX en HKEY_CLASSES_ROOT / AppID
- Lo encontré en HKEY_CLASSES_ROOT / AppID {6E8109C4-F369-415D-AF9A-2AEEFF313234}
- Cree una entrada en blanco REG_SZ (String) llamada DllSurrogate
Por alguna razón, esto resolvió completamente el problema.
Referencia: Cómo usar un objeto COM de 32 bits en Windows Server 2008 (funciona en 2008 R2 pero no en 2008)
Hainesy,
usas un x64-Windows? Tuve el mismo problema cuando comencé a echar un vistazo a COM. Si es así, debería intentar registrar su clase en HKEY_LOCAL_MACHINE / SOFTWARE / WoW6432Node / Classes ...
¡Darle una oportunidad!
Saludo