题
我正在尝试与Ruby一起使用自动。自动IT中有一些用户定义的功能,我需要进行GUI自动化,例如窗口选项卡访问等。问题是,与普通自动化API不同,我无法从Ruby win32ole对象访问自动dll的Ruby Win32ole对象the Autoit的UDFS 。有什么方法可以在我的Ruby代码中访问这些UDF?这些实际上是自动脚本中定义的一些功能,我认为我想要的是不可能的。我想要一些可能以前尝试过并得出结论的人的意见。
谢谢,问候,安贾利
解决方案
根据 自动论坛. 。我想您必须在Ruby中重写UDF。
其他提示
在Ruby中重写UDF是一个简单的解决方案。但是,由于所涉及的工作量,这并不是在所有情况下的解决方案。没有直接的方法可以从Ruby调用自动功能,因为您无法将自动汇编为DLL或COM或类似方法。
您能做的就是重写您的自动UDFS以启用分解通信。您可以通过命令行参数执行此操作:
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(在自动编译器中检查选项),然后从Ruby运行。然后,您可以通过标准流来获取输出。另外,您可以将脚本的输出写入磁盘上的文件,然后使用Ruby读取文件的内容。
更多非传统交流交流的其他选项包括:
- Mailslots: http://www.autoitscript.com/forum/topic/106710-mailslot/
- _SENDMESSAGE:让自动脚本将Windows消息发送到Ruby中创建的窗口
- 在Autoit中创建Telnet Server,通过TCP发送和接收命令: http://www.autoitscript.com/forum/topic/123713-simple-telnet-server-skeleton-with-authentication/
- HTTP服务器,如果您正在寻找更多无状态的通信或网络:Google上的搜索自动http服务器。对新用户的垃圾邮件保护使我无法发布链接。
可能性是无限的。 :)这篇文章应该让您入门。
不隶属于 StackOverflow