Автоматическая установка AutoIt 3.3.6.1: нужна 32-битная версия, но можно получить только 64-битную версию

Я хочу выполнить автоматическую/автоматическую установку AutoIt, а затем иметь возможность управлять 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 работать с Ruby, если не установлю 32-разрядную версию AutoIt (я полагаю это потому, что Ruby для Windows все еще 32-битный).

Кто-нибудь знает способ принудительно установить 32-битную версию в автоматической установке?


person L2G    schedule 26.06.2013    source источник
comment
Нельзя ли просто раздать копию AutoItX и зарегистрировать dll вручную?   -  person Matt    schedule 27.06.2013
comment
@Matt, твой совет зарегистрировать dll вручную был недостающей частью моей головоломки. Спасибо.   -  person L2G    schedule 27.06.2013


Ответы (2)


Просто используйте ZIP версию AutoIt. Затем вы можете просто использовать AutoIt.exe вместо AutoIt_x64.exe.

Если вам нужно, вы можете упаковать его с помощью утилиты распаковки, такой как 7za.exe, как указано выше здесь.

person Samoth    schedule 27.06.2013

Оказывается, программа установки AutoIt делает установку необходимой 32-битной DLL вместе с 64-битной библиотекой, но, видимо, не регистрирует ее должным образом.

Путем cd перехода в подкаталог AutoItX корня установки и выполнения этой команды:

regsvr32 AutoItX3.dll

... Я смог заставить его работать с библиотекой Ruby WIN32OLE.

person L2G    schedule 27.06.2013
comment
Вы, вероятно, захотите использовать переключатель /s, чтобы автоматически зарегистрировать его. - person Matt; 28.06.2013