Hello all,
 
unless we get following child elements for example in a empty notepad 
application all playing be be useless:
 
Raw View:
---------------
  "Window" "Unbenannt - Editor"
    "Document" ""
      "Scrollbar" "Vertikale Bildlaufleiste"
        "Button" "Zurück um kleine Menge"
        "Button" "Vorwärts um kleine Menge"
    "Titelbar" "Unbenannt - Editor"
      "Menubar" "Systemmenüleiste"
        "Menuitem" "System"
      "Button" "Minimieren"
      "Button" "Maximieren"
      "Button" "Schließen"
    "Menubar" "Anwendung"
      "Menuitem" "Datei"
      "Menuitem" "Bearbeiten"
      "Menuitem" "Format"
      "Menuitem" "Ansicht"
      "Menuitem" "?"

It a german window a I have translated the ControlType (1st word; 2nd = name) 
to english.
 
The output ist created from the tool UISpy, witch shows all AutomationElements 
from all application curently running as child beneath the 'desktop' window.
 
UISpy come from MS and can be downloaded free.
 
Greetings
Wolfram


________________________________

Von: users-boun...@lists.ironpython.com 
[mailto:users-boun...@lists.ironpython.com] Im Auftrag von Lukas Cenovsky
Gesendet: Donnerstag, 17. Juni 2010 10:52
An: Discussion of IronPython
Betreff: Re: [IronPython] IronPython and C# not giving the same result


I tried your IronPython script and it found one child element which name is ''.

Change the print line to:
print 'Name:',  ae.Current.Name

--
-- Lukáš


yngipy hernan wrote: 

        Hi, 

        All root elements are ok. Thus say, i can see all (?) of the root 
elements.

        But not when trying to iterate child elements of the Notepad automation 
element.

        My Info:
        W7 32 bit (UAC disabled)
        .Net 4.0
        
        
        On Wed, Jun 16, 2010 at 10:08 AM, Lepisto, Stephen P 
<stephen.p.lepi...@intel.com> wrote:
        

                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 == "Untitled - Notepad")

                                {

                                    AutomationElement ae;

                                    ae = 
TreeWalker.ControlViewWalker.GetFirstChild(eNode);

                                    
System.Console.WriteLine("-------------------");

                                    while (ae != null)

                                    {

                                        System.Console.WriteLine("Name: {0}", 
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 == 'Untitled - Notepad':

                        print '-'*24

                        ae = swu.TreeWalker.ControlViewWalker.GetFirstChild( 
rae )

                        while ae:

                            print 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
                
                


        
________________________________


        _______________________________________________
        Users mailing list
        Users@lists.ironpython.com
        http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
          


_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to