是否可以使用ruby对windows应用程序进行屏幕抓取?

是否可以使用ruby对windows应用程序进行屏幕抓取?,windows,ruby,screen-scraping,Windows,Ruby,Screen Scraping,我想从windows应用程序中提取文本数据,使用现有的ruby代码进行额外的处理。在windows应用程序中使用Ruby更新数据时,是否可以刮取数据?从何处开始?如果您对windows API了解得足够透彻(或者可以使用搜索引擎查找相关API),那么从Ruby调用它们通常是可以实现的 是访问Windows API的传统方式;还有一个很吸引人的新功能,尽管在MSVC6到gcc的转换过程中,编译器可能存在一些悬而未决的问题。如果文本位于标准windows控件中,您可以使用它。这是它自己的脚本语言,您

我想从windows应用程序中提取文本数据,使用现有的ruby代码进行额外的处理。在windows应用程序中使用Ruby更新数据时,是否可以刮取数据?从何处开始?

如果您对windows API了解得足够透彻(或者可以使用搜索引擎查找相关API),那么从Ruby调用它们通常是可以实现的


是访问Windows API的传统方式;还有一个很吸引人的新功能,尽管在MSVC6到gcc的转换过程中,编译器可能存在一些悬而未决的问题。

如果文本位于标准windows控件中,您可以使用它。这是它自己的脚本语言,您可以在Ruby中与它的函数交互,如下所示:

require 'win32ole'
STDOUT.sync = true

App = "calc.exe"
AppClass = "[CLASS:SciCalc]"    # retrieved with AutoIt Window Info

ai = WIN32OLE.new("AutoItX3.Control")
ai.run( App )
ai.winwaitactive( AppClass )
handle = "[HANDLE:#{ai.wingethandle(AppClass)}]"

until ai.winexists( handle ).zero?
  puts ai.controlgettext( handle, "", "Edit1" ) # retrieved with AutoIt Window Info
  sleep 1
end
这将打开“Calc”的实例,并每秒显示文本控件的内容