Get AutoIt reference working in C#

2019-08-16 16:45发布

我拉我的头发就这一个...

我有一个遗留应用程序,我在几年前建成使用AutoItX - 所有工作的罚款。

时间已经到了尝试和更新的应用程序,所以我已经将它升级到VS2012 / .NET4,我根本无法获取到AutoItX库的引用的工作。

我已经安装的应用程序,已注册与REGSVR32的dll,试图在基准本身(嵌入互操作类型/隔离),但没有喜悦的属性设置每一个结合。

我不断收到每当我试图创建一个AutoItX3对象错误:

(从HRESULT异常:0x80040154的(REGDB_E_CLASSNOTREG))80040154类未注册:检索COM类工厂具有CLSID {1A671297-FA74-4422-80FA-6C5D8CE4DE04}组件未能由于下面的错误。

它是一个问题,我是一个64位的机器? 我并不想使用64位的DLL版本。

Answer 1:

好的解决方案是:

  1. 打开注册表编辑器* 32(C:\ WINDOWS \ SysWow64资料\注册表编辑器)
  2. 搜索AutoItX在HKEY_CLASSES_ROOT \的AppID
  3. 我发现它在HKEY_CLASSES_ROOT \ {的AppID 6E8109C4-F369-415D-AF9A-2AEEFF313234}
  4. 创建一个名为DllSurrogate空REG_SZ(字符串)项

出于某种原因,这彻底解决了这个问题。

参考: 如何使用一个32位的COM对象在Windows Server 2008(适用于2008 R2而非2008年)



Answer 2:

Hainesy,

你使用一个x64的Windows? 我有当我开始看看COM同样的问题。 如果是这样,你应该尝试注册您在HKEY_LOCAL_MACHINE \ SOFTWARE \ WoW6432Node \类的类...

试试看!

欢迎



文章来源: Get AutoIt reference working in C#
标签: c# com autoit