2010-04-07 62 views

回答

2

如果您足夠了解Windows API(或者可以使用足夠好的搜索引擎來查找相關的API),那麼通常可以通過Ruby調用它們。

Win32APIlibrary是訪問Windows API的傳統方式;還有性感的新版本FFI,儘管在MSVC6轉換爲gcc時,編譯器可能存在懸而未決的問題。

2

如果文本是在一個標準的Windows控件中,你可以通過AutoIt得到它。這是它自己的腳本laguage,您可以進行交互與它的功能在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 

這將打開「計算」的一個實例,並顯示文本控件每秒的內容。