From: David Mullet Date: 2008-04-13T21:20:44+09:00 Subject: Re: AutoIt over Ruby question - How do I call ObjGet()? William James wrote: > This seems not to work. > > require 'win32ole' > ie = nil > WIN32OLE.new('Shell.Application').Windows.each do |window| > p window.FullName > p window.Name > begin > title = window.Document.Title > p title > if title =~ /Internet Explorer/ > ie = window > end > rescue > end > end > p ie > > --- output --- > "C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE" > "Microsoft Internet Explorer" > "" > nil A key distinction here is between window.Name and window.Document.Title . window.Document.Title is the Title as defined in the HTML code of a window with a Type of "HTML Document". This probably equates to the window.LocationName property. The titlebar text will include both window.Document.Title and window.Name, so... if window.Document.Title =~ /Internet Explorer/ will usually NOT work, though... if window.Name =~ /Internet Explorer/ ...would work. To grab an IE window from the Shell.Application.Windows collection... You could test the Type property: if window.Type == 'HTML Document' or you could test the window.Name property: if window.Name =~ /Internet Explorer/ But to grab a *particular* IE window from the Shell.Application.Windows collection, you could use the window.Document.Title or window.LocationName property if window.Document.Title =~ /Yahoo/ if window.LocationName =~ /Yahoo/ David http://rubyonwindows.blogspot.com -- Posted via http://www.ruby-forum.com/.