我正在尝试使用Ruby与Autoit。在Autoit中有一些用户定义的函数,我需要我的Gui自动化,如窗口选项卡访问等。问题是,与普通的autoit API不同,我无法从rubit win32ole对象句柄访问autoit的UDF的autoFll 。 有没有办法在我的Ruby代码中访问这些UDF? 这些实际上是autoit脚本中定义的一些函数,我认为我想要的是不可能的。我想要一些可能曾经尝试过这个并得出一些结论的人的意见。
谢谢和问候, 安贾利
答案 0 :(得分: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运行它。然后,您可以通过标准流获取输出。或者,您可以将脚本的输出写入磁盘上的文件,然后使用Ruby读取文件的内容。
更多非传统进程间通信的其他选项包括:
可能性是无穷无尽的。 :)这篇文章应该让你开始。
答案 1 :(得分:0)
根据autoit forum,无法完成。我想你必须用Ruby重写UDF。