2011-01-13 46 views
1

我想用Ruby来使用Autoit。在Autoit中有一些用户定义的函数,我需要为我的GUI自动化,比如窗口选项卡访问等。问题是,与普通的autoit API不同,我无法访问autoit的自动函数的UDF从win32ole对象处理autoit dll 。 有什么方法可以在我的Ruby代码中访问这些UDF? 这些实际上是在自动脚本中定义的一些函数,我认为我想要的是不可能的。我想从某个可能已经尝试过的人那里得到一些意见,并得出一些结论。从Ruby访问autoit UDF

感谢和问候, 综合外电

回答

2

在Ruby中重写UDF是一个简单的解决方案。但是,由于涉及的工作量多,这不是所有情况下的解决方案。没有直接的方法来从Ruby调用AutoIt函数,因为没有办法可以将AutoIt编译为dll或COM或类似的。

您可以做的是重写您的AutoIt UDF以启用进程间通信。您可以通过命令行参数做到这一点:

If $CmdLine[0] > 1 Then 
    Switch $CmdLine[1] 
     Case "/1" 
      Method1() 
     Case "/2" 
      Method2() 
    EndSwitch 
EndIf 

Func Method1() 
    ConsoleWrite("This is the 1st Method" & @CRLF) 
EndFunc 

Func Method2() 
    ConsoleWrite("This is the 2nd Method" & @CRLF) 
EndFunc 

您编译上面的脚本作为CUI(检查AutoIt的编译器选项),然后从红宝石运行它。然后您可以通过标准流获取输出。或者,您可以将脚本的输出写入磁盘上的文件,然后使用Ruby读取文件的内容。

更多非传统的进程间通信的其他选项包括:

可能性是无止境的。 :)这篇文章应该让你开始。