unknown OLE server: ‘AutoItX3.Control’ (WIN32OLERuntimeError)

来源:互联网 发布:chinaz 源码 编辑:程序博客网 时间:2024/05/16 12:14

Following error is displayed when we run the script,

>ruby test.rb
C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ie.rb:114:in `initialize': unknown OLE server: `AutoItX3.Control' (WIN32OLERuntimeError)
    HRESULT error code:0x800401f3
      Invalid class string
    from C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ie.rb:114:in `new'
    from C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ie.rb:114:in `autoit'
    from C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ie-class.rb:438:in `autoit'
    from C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/ie-class.rb:426:in `bring_to_front'
    from test.rb:6
>Exit code: 1


Solution
You need to register AutoIt.

In a command window, navigate to the directory where you've put AutoIt and type:

regsvr32 AutoItX3.dll

My directory is C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/AutoItX3.dll.

Also can use below command to register AutoIt.

regsvr32 C:/Ruby/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/AutoItX3.dll  (For Ruby 1.8.6)

regsvr32 C:/Ruby187/lib/ruby/gems/1.8/gems/watir-1.6.5/lib/watir/AutoItX3.dll  (For Ruby 1.8.7)

 

 

After the above action, I got the error message is as following,

The module "AutoItX3.dll" was loaded but the call to DllRegisterServer failed with error code 0x80070005.

image

 

Solution

Return code was: 0x80070005

If you are logged on with a user account that does NOT have administrative privileges, you will experience this behavior if the DLL file writes to the registry, or changes files in the %SystemRoot%/System32 folder.

To workaround this behavior, log on with an account that has administrative privileges.

image