First off, Notepad was running with the word "test1". Sorry for not being clear.<div><br></div><div>As with Wolfram, I also used UI Spy. UI Spy would see tree element from the "Notepad" window. Namely:</div>
<div>Edit control (this contains "test1" text)</div><div>TitlebarControrl (this is where the min, max, close, system menu is contained. And it has the text "Untitled - Notepad")</div><div>Application Menu bar (This is the main menus).</div>
<div><br></div><div>So yes, IronPython does not seem to like UI Automation much. C# can do it just fine by the way. </div><div><br></div><div>This might be related to this <a href="http://blogs.msdn.com/b/shrib/archive/2008/03/24/ironpython-cannot-call-automationelement-fromhandle.aspx">issue</a>. I am hoping that people with deep enough knowledge about IronPython can confirm this.</div>
<div><br></div><div>Or if I can get enough direction, I can spend some time digging into it.... but I need hint how to go from here.</div><div><br></div><div>Regards,</div><div>Yngipy</div><div><br></div><div><br></div><div>
<div><div class="gmail_quote">2010/6/17 Stanger, Wolfram <span dir="ltr"><<a href="mailto:Wolfram.Stanger@kratzer-automation.com">Wolfram.Stanger@kratzer-automation.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div bgcolor="#ffffff" text="#000000">
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial">Hello all,</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial">unless we get following child elements for example in a
empty notepad application all playing be be useless:</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial"></font></span> </div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial">Raw View:</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" size="2" face="Arial">---------------<br> "Window" "Unbenannt -
Editor"<br> "Document" ""<br>
"Scrollbar" "Vertikale
Bildlaufleiste"<br> "Button" "Zurück
um kleine Menge"<br> "Button"
"Vorwärts um kleine Menge"<br> "Titelbar" "Unbenannt -
Editor"<br> "Menubar"
"Systemmenüleiste"<br> "Menuitem"
"System"<br> "Button"
"Minimieren"<br> "Button"
"Maximieren"<br> "Button"
"Schließen"<br> "Menubar"
"Anwendung"<br> "Menuitem"
"Datei"<br> "Menuitem"
"Bearbeiten"<br> "Menuitem"
"Format"<br> "Menuitem"
"Ansicht"<br> "Menuitem"
"?"<br></font></span></div>
<div><span></span><font color="#0000ff" size="2" face="Arial">It a german window a I have translated the ControlType (1st word<span>; 2nd = name</span>) to english.</font></div>
<div><font face="Arial"><font color="#0000ff"><font size="2"></font></font></font> </div>
<div><font face="Arial"><font color="#0000ff"><font size="2"><span>The output ist created from the tool UISpy, witch shows
all AutomationElements from all application curently running as child beneath
the 'desktop' window.</span></font></font></font></div>
<div><font face="Arial"><font color="#0000ff"><font size="2"><span></span></font></font></font> </div>
<div><font face="Arial"><font color="#0000ff"><font size="2"><span>UISpy come from MS and can be downloaded
free.</span></font></font></font></div>
<div><font face="Arial"><font color="#0000ff"><font size="2"><span></span></font></font></font> </div>
<div><font face="Arial"><font color="#0000ff"><font size="2"><span>Greetings</span></font></font></font></div>
<div><font face="Arial"><font color="#0000ff"><font size="2"><span>Wolfram</span></font></font></font></div>
<div><font color="#0000ff" size="2" face="Arial"></font><br></div>
<div dir="ltr" lang="de" align="left">
<hr>
<font size="2" face="Tahoma"><b>Von:</b> <a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>
[mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>] <b>Im Auftrag von </b>Lukas
Cenovsky<br><b>Gesendet:</b> Donnerstag, 17. Juni 2010 10:52<br><b>An:</b>
Discussion of IronPython<br><b>Betreff:</b> Re: [IronPython] IronPython and C#
not giving the same result<br></font><br></div><div><div></div><div class="h5">
<div></div>I tried your IronPython script and it found one child element which
name is ''.<br><br>Change the print line to:<br>print 'Name:', <a href="http://ae.Current.Name" target="_blank">ae.Current.Name</a><br><br>--<br>--
Luká¹<br><br><br>yngipy hernan wrote:
<blockquote type="cite">Hi,
<div><br></div>
<div>All root elements are ok. Thus say, i can see all (?) of the root
elements.</div>
<div><br></div>
<div>But not when trying to iterate child elements of the Notepad automation
element.</div>
<div><br></div>
<div>My Info:</div>
<div>W7 32 bit (UAC disabled)</div>
<div>.Net 4.0<br><br>
<div class="gmail_quote">On Wed, Jun 16, 2010 at 10:08 AM, Lepisto, Stephen P
<span dir="ltr"><<a href="mailto:stephen.p.lepisto@intel.com" target="_blank">stephen.p.lepisto@intel.com</a>></span> wrote:<br>
<blockquote style="border-left:rgb(204,204,204) 1px solid;margin:0pt 0pt 0pt 0.8ex;padding-left:1ex" class="gmail_quote">
<div lang="EN-US" vlink="purple" link="blue">
<div>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt">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</span></p>
<div>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt"></span> </p>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt">if
<a href="http://rae.Current.Name" target="_blank">rae.Current.Name</a> == 'Untitled -
Notepad':</span></p>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt"></span> </p></div>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt">to
be</span></p>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt"></span> </p>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt">if
not <a href="http://rae.Current.Name" target="_blank">rae.Current.Name</a> == '':</span></p>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt"></span> </p>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt">just
to see what was actually being found.</span></p>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt"></span> </p>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt">Note: I'm running Windows XP
SP3.</span></p>
<p class="MsoNormal"><span style="color:rgb(31,73,125);font-size:11pt"></span> </p>
<div style="border-bottom:medium none;border-left:medium none;padding-bottom:0in;padding-left:0in;padding-right:0in;border-top:rgb(181,196,223) 1pt solid;border-right:medium none;padding-top:3pt">
<p class="MsoNormal"><b><span style="font-size:10pt">From:</span></b><span style="font-size:10pt"> <a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>
[mailto:<a href="mailto:users-bounces@lists.ironpython.com" target="_blank">users-bounces@lists.ironpython.com</a>] <b>On Behalf
Of </b>yngipy hernan<br><b>Sent:</b> Tuesday, June 15, 2010 10:09
PM<br><b>To:</b> Discussion of IronPython<br><b>Subject:</b> [IronPython]
IronPython and C# not giving the same result</span></p></div>
<div>
<div>
<p class="MsoNormal"> </p>
<p class="MsoNormal">Hi All,</p>
<div>
<p class="MsoNormal"> </p></div>
<div>
<p class="MsoNormal">I have tried to transliterate the following C# code to
IronPython:</p></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<div>
<p class="MsoNormal">using System;</p></div>
<div>
<p class="MsoNormal">using System.Collections.Generic;</p></div>
<div>
<p class="MsoNormal">using System.Linq;</p></div>
<div>
<p class="MsoNormal">using System.Text;</p></div>
<div>
<p class="MsoNormal">using System.Windows.Automation;</p></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<p class="MsoNormal">namespace ConsoleApplication1</p></div>
<div>
<p class="MsoNormal">{</p></div>
<div>
<p class="MsoNormal"> class Program</p></div>
<div>
<p class="MsoNormal"> {</p></div>
<div>
<p class="MsoNormal"> static void
Main(string[] args)</p></div>
<div>
<p class="MsoNormal"> {</p></div>
<div>
<p class="MsoNormal">
AutomationElement eNode;</p></div>
<div>
<p class="MsoNormal"> eNode =
TreeWalker.ControlViewWalker.GetFirstChild(AutomationElement.RootElement);</p></div>
<div>
<p class="MsoNormal">
while(eNode != null) {</p></div>
<div>
<p class="MsoNormal">
if (<a href="http://eNode.Current.Name" target="_blank">eNode.Current.Name</a> == "Untitled -
Notepad")</p></div>
<div>
<p class="MsoNormal">
{</p></div>
<div>
<p class="MsoNormal">
AutomationElement ae;</p></div>
<div>
<p class="MsoNormal">
ae =
TreeWalker.ControlViewWalker.GetFirstChild(eNode);</p></div>
<div>
<p class="MsoNormal">
System.Console.WriteLine("-------------------");</p></div>
<div>
<p class="MsoNormal">
while (ae != null)</p></div>
<div>
<p class="MsoNormal">
{</p></div>
<div>
<p class="MsoNormal">
System.Console.WriteLine("Name: {0}", <a href="http://ae.Current.Name" target="_blank">ae.Current.Name</a>);</p></div>
<div>
<p class="MsoNormal">
ae =
TreeWalker.ControlViewWalker.GetNextSibling( ae);</p></div>
<div>
<p class="MsoNormal">
}</p></div>
<div>
<p class="MsoNormal">
System.Console.WriteLine("-------------------");</p></div>
<div>
<p class="MsoNormal">
}</p></div>
<div>
<p class="MsoNormal">
eNode = TreeWalker.ControlViewWalker.GetNextSibling(eNode);</p></div>
<div>
<p class="MsoNormal">
}</p></div>
<div>
<p class="MsoNormal"> }</p></div>
<div>
<p class="MsoNormal"> }</p></div>
<div>
<p class="MsoNormal">}</p></div></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<p class="MsoNormal">The output of this program looks like:</p></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<div>
<p class="MsoNormal">-------------------</p></div>
<div>
<p class="MsoNormal">Name: test1</p></div>
<div>
<p class="MsoNormal">Name: Untitled - Notepad</p></div>
<div>
<p class="MsoNormal">Name: Application</p></div>
<div>
<p class="MsoNormal">-------------------</p></div></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<p class="MsoNormal">This is my IronPython code:</p></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<div>
<p class="MsoNormal">import clr</p></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<p class="MsoNormal">clr.AddReference('UIAutomationTypes')</p></div>
<div>
<p class="MsoNormal">clr.AddReference('UIAutomationProvider')</p></div>
<div>
<p class="MsoNormal">clr.AddReference('UIAutomationClient')</p></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<p class="MsoNormal">import System.Windows.Automation as swu</p></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<p class="MsoNormal">rae = swu.TreeWalker.ControlViewWalker.GetFirstChild(
swu.AutomationElement.RootElement )</p></div>
<div>
<p class="MsoNormal">while rae:</p></div>
<div>
<p class="MsoNormal"> if <a href="http://rae.Current.Name" target="_blank">rae.Current.Name</a> == 'Untitled -
Notepad':</p></div>
<div>
<p class="MsoNormal"> print '-'*24</p></div>
<div>
<p class="MsoNormal"> ae =
swu.TreeWalker.ControlViewWalker.GetFirstChild( rae )</p></div>
<div>
<p class="MsoNormal"> while ae:</p></div>
<div>
<p class="MsoNormal"> print <a href="http://ae.Current.Name" target="_blank">ae.Current.Name</a></p></div>
<div>
<p class="MsoNormal"> ae =
swu.TreeWalker.ControlViewWalker.GetNextSibling( ae )</p></div>
<div>
<p class="MsoNormal"> print '-'*24</p></div>
<div>
<p class="MsoNormal"> rae =
swu.TreeWalker.ControlViewWalker.GetNextSibling( rae )</p></div></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<p class="MsoNormal">The output of this shows:</p></div>
<div>
<div>
<p class="MsoNormal">------------------------</p></div>
<div>
<p class="MsoNormal">test1</p></div>
<div>
<p class="MsoNormal">------------------------</p></div></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<p class="MsoNormal">I read somewhere that IronPython used to have issues with
UI Automation. Is still the case?</p></div>
<div>
<p class="MsoNormal"> </p></div>
<div>
<p class="MsoNormal">Regards,</p></div>
<div>
<p class="MsoNormal">Yngipy</p></div></div></div></div></div><br>_______________________________________________<br>Users
mailing list<br><a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a><br><a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
<br></blockquote></div><br></div><pre><hr size="4" width="90%">
_______________________________________________
Users mailing list
<a href="mailto:Users@lists.ironpython.com" target="_blank">Users@lists.ironpython.com</a>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a>
</pre></blockquote><br></div></div></div>
<br>_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.ironpython.com">Users@lists.ironpython.com</a><br>
<a href="http://lists.ironpython.com/listinfo.cgi/users-ironpython.com" target="_blank">http://lists.ironpython.com/listinfo.cgi/users-ironpython.com</a><br>
<br></blockquote></div><br></div></div>