Jump to content

UIAutomation access to First Child


Recommended Posts

I would like to access a list view object and then get the value for the first child.
However, there doesn't seem to be a property value available though it shows in Inspect.

I figured it shouldn't be too difficult to add

    ["FirstChild", $UIA_FirstChildPropertyId]_  to UIAWrappers.au3

 and then a Global Variable to  CUIAutomation2.au3. However,  I'm not sure how you figure out the Id# for this Property.

@Junkew Can you help me figure that out?

FirstChild.png

Link to comment
Share on other sites

as told in iuiautomation thread add more information from simplespy output.

Not sure but I think you first have to get your list object and then with a treewalker you can get first and last child

As far as I am aware there is not a property for First or Last child

see https://msdn.microsoft.com/en-us/library/windows/desktop/ee671425(v=vs.85).aspx

Link to comment
Share on other sites

I thought maybe there was because it is listed at the bottom, using WinSDK_Inspect_exe_x86.exe

It's not that I am having trouble - accessing the field or seeing if it is an element of the list -  using tree walker; it's that I actually need to know if it's listed as the first child.

I checked the link you sent. 

I will try accessing the link and using the FindFirst() method.

 

Link to comment
Share on other sites

Okay I have tried:

$obj.GetFirstChild

$obj.GetFirstChildElement

$obj.FindFirstChild

The problem is all of these seem to want you to point toward a property in the object,  such as $UIA_NamePropertyId.
This makes perfect sense, which is why I was wondering if I could access that field in Inspect.exe listed as FirstChild.  The Element in FirstChild is the data I desire.

I could even deal with getting access to the "property" listed here as Children. 

When I use SimpleSpy.au3, I do not see a property that has any information that I can use to narrow it's position within the subtree of ListView.

If you have any ideas, please let me know.

Link to comment
Share on other sites

So I continued to extensively research your code and managed to get the value of the first child by accessing the listbox path, getting the firstObject, and then pulling its value.

Local $o_listBox  =searchForPathByAutoId(...

Local $firstElement = _UIA_getFirstObjectOfElement($o_listBox...

Local $firstElementValue = _UIA_getPropertyValue($firstElement, $UIA_NamePropertyId)

 

Thanks for guiding me along the way :D

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...