我拉我的头发就这一个...
我有一个遗留应用程序,我在几年前建成使用AutoItX - 所有工作的罚款。
时间已经到了尝试和更新的应用程序,所以我已经将它升级到VS2012 / .NET4,我根本无法获取到AutoItX库的引用的工作。
我已经安装的应用程序,已注册与REGSVR32的dll,试图在基准本身(嵌入互操作类型/隔离),但没有喜悦的属性设置每一个结合。
我不断收到每当我试图创建一个AutoItX3对象错误:
(从HRESULT异常:0x80040154的(REGDB_E_CLASSNOTREG))80040154类未注册:检索COM类工厂具有CLSID {1A671297-FA74-4422-80FA-6C5D8CE4DE04}组件未能由于下面的错误。
它是一个问题,我是一个64位的机器? 我并不想使用64位的DLL版本。
好的解决方案是:
- 打开注册表编辑器* 32(C:\ WINDOWS \ SysWow64资料\注册表编辑器)
- 搜索AutoItX在HKEY_CLASSES_ROOT \的AppID
- 我发现它在HKEY_CLASSES_ROOT \ {的AppID 6E8109C4-F369-415D-AF9A-2AEEFF313234}
- 创建一个名为DllSurrogate空REG_SZ(字符串)项
出于某种原因,这彻底解决了这个问题。
参考: 如何使用一个32位的COM对象在Windows Server 2008(适用于2008 R2而非2008年)
Hainesy,
你使用一个x64的Windows? 我有当我开始看看COM同样的问题。 如果是这样,你应该尝试注册您在HKEY_LOCAL_MACHINE \ SOFTWARE \ WoW6432Node \类的类...
试试看!
欢迎