2013-06-26 22 views
1

我想執行AutoIt的自動/無人蔘與安裝,然後能夠從Ruby腳本驅動AutoItX。AutoIt 3.3.6.1的無人蔘與安裝:需要32位版本,但只能獲得64位版本

當我做,我應該能夠運行這個最起碼的準則,並已成功它:

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中的安裝程序默認是因爲我使用的是Windows 7的64位版本上安裝64位版本。但是我不能讓AutoIt與Ruby一起工作,除非我安裝AutoIt的32位版本(我相信這是因爲Ruby for Windows仍然是32位版本)。

有誰知道在無人蔘與安裝中強制使用32位版本的方法嗎?

+1

你不能只是分發一個AutoItX的副本並手動註冊dll嗎? – Matt

+0

@Matt,你的提示「手動註冊dll」是我拼圖的缺失部分。謝謝。 – L2G

回答

0

事實證明,AutoIt安裝程序確實與64位庫一起安裝了必要的32位DLL,但顯然它沒有正確註冊它。

通過cd -ing到AutoItX子目錄安裝根目錄下,並運行此命令:

regsvr32 AutoItX3.dll 

...我能使其與Ruby的WIN32OLE圖書館工作。

+1

您可能想要使用'/ s'開關來靜默註冊它。 – Matt

0

只需使用AutoIt的ZIP版本。您可以使用AutoIt.exe而不是AutoIt_x64.exe

如果需要,您可以使用像here中提到的7za.exe這樣的解壓縮工具來打包它。

相關問題