From: mully Date: 2008-04-14T08:00:34+09:00 Subject: Re: AutoIt over Ruby question - How do I call ObjGet()? On Apr 13, 8:20 am, David Mullet wrote: > 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 [Re-posting my reply, as it seems to have been truncated on Google Groups...] 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