1

我想做AutoIt的自动/无人值守安装,然后能够从 Ruby 脚本驱动 AutoItX。

完成后,我应该能够运行这个基本代码并让它成功:

require 'win32ole'
WIN32OLE.new('AutoItX3.Control')

由于它似乎是 Nullsoft (NSIS) 安装程序,因此我可以使用该/S标志强制进行安静安装。但是在我安装它并尝试上面的代码之后,它会产生这个错误:

WIN32OLERuntimeError: failed to create WIN32OLE object from `AutoItX3.Control'
    HRESULT error code:0x80040154
      Class not registered

似乎 AutoIt 的安装程序默认安装 64 位版本,因为我使用的是 64 位版本的 Windows 7。但是除非我安装 AutoIt 的 32 位版本,否则我无法让 AutoIt 与 Ruby 一起使用(我相信这是因为 Ruby for Windows 仍然是 32 位的)。

有谁知道在无人值守安装中强制使用 32 位版本的方法?

4

2 回答 2

0

只需使用 AutoIt 的ZIP版本。然后,您可以只使用AutoIt.exe代替AutoIt_x64.exe

如果需要,您可以使用此处7za.exe提到的解压缩实用程序将其打包。

于 2013-06-27T11:11:07.587 回答
0

事实证明,AutoIt 安装程序确实安装了必要的 32 位 DLL 以及 64 位库,但显然它没有正确注册它。

通过cd-ing 到AutoItX安装根目录的子目录并运行以下命令:

regsvr32 AutoItX3.dll

...我能够使它与 Ruby 的 WIN32OLE 库一起工作。

于 2013-06-27T19:02:58.967 回答