I was able to successfully run that python code under both IronPython 2.0.3 and IronPython 2.6.1 and it produced a list of all top-level applications. I modified the one line
if rae.Current.Name == 'Untitled - Notepad': to be if not rae.Current.Name == '': just to see what was actually being found. Note: I'm running Windows XP SP3. From: users-boun...@lists.ironpython.com [mailto:users-boun...@lists.ironpython.com] On Behalf Of yngipy hernan Sent: Tuesday, June 15, 2010 10:09 PM To: Discussion of IronPython Subject: [IronPython] IronPython and C# not giving the same result Hi All, I have tried to transliterate the following C# code to IronPython: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Automation; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { AutomationElement eNode; eNode = TreeWalker.ControlViewWalker.GetFirstChild(AutomationElement.RootElement); while(eNode != null) { if (eNode.Current.Name<http://eNode.Current.Name> == "Untitled - Notepad") { AutomationElement ae; ae = TreeWalker.ControlViewWalker.GetFirstChild(eNode); System.Console.WriteLine("-------------------"); while (ae != null) { System.Console.WriteLine("Name: {0}", ae.Current.Name<http://ae.Current.Name>); ae = TreeWalker.ControlViewWalker.GetNextSibling( ae); } System.Console.WriteLine("-------------------"); } eNode = TreeWalker.ControlViewWalker.GetNextSibling(eNode); } } } } The output of this program looks like: ------------------- Name: test1 Name: Untitled - Notepad Name: Application ------------------- This is my IronPython code: import clr clr.AddReference('UIAutomationTypes') clr.AddReference('UIAutomationProvider') clr.AddReference('UIAutomationClient') import System.Windows.Automation as swu rae = swu.TreeWalker.ControlViewWalker.GetFirstChild( swu.AutomationElement.RootElement ) while rae: if rae.Current.Name<http://rae.Current.Name> == 'Untitled - Notepad': print '-'*24 ae = swu.TreeWalker.ControlViewWalker.GetFirstChild( rae ) while ae: print ae.Current.Name<http://ae.Current.Name> ae = swu.TreeWalker.ControlViewWalker.GetNextSibling( ae ) print '-'*24 rae = swu.TreeWalker.ControlViewWalker.GetNextSibling( rae ) The output of this shows: ------------------------ test1 ------------------------ I read somewhere that IronPython used to have issues with UI Automation. Is still the case? Regards, Yngipy
_______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com