Jump to content
Sign in to follow this  
RobOtter

TreeListCtrl32

Recommended Posts

RobOtter

Hi,

I need to control a third-party application that uses a TreeListCtrl32 (revealed by AU3 Spy).

I am not able to even count the items in it, not to mention retrieving text from a item.

I tried using "ControlListView(...)" and also "_GUICtrlTreeView_GetCount(...)" but none of them worked because they seem to only support SysListView32.

Is there a way to get a grip on the TreeListCtrl32?

Many thanks in advance,

Rob

Share this post


Link to post
Share on other sites
PsaltyDS

It looks like the _GuiCtrlTreeView_* functions are more likely to work that ListView stuff.

How did you identify the control or go about getting the handle to use with _GUICtrlTreeView_GetCount()?

:blink:


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites
RobOtter

How did you identify the control or go about getting the handle to use with _GUICtrlTreeView_GetCount()?

I used AU3 Window Spy for this (see screenshot). I tried all of the code below but although I get a handle (for instance 0x000104F8), the item count is always 0.

; Read TreeListCtrl32
    Local $tlcHandle = ControlGetHandle("McAfee Host Intrusion Prevention", "", "TreeListCtrl321")
    MsgBox(0, "", "Handle: " & $tlcHandle)
    ;Local $tlcItemCount = ControlListView ("McAfee Host Intrusion Prevention", "", "TreeListCtrl321", "GetItemCount")
    ;MsgBox(0, "", "Items: " & $tlcItemCount)
    Local $tlcItemCount = _GUICtrlTreeView_GetCount($tlcHandle)
    MsgBox(0, "", "Items: " & $tlcItemCount)

Edit: I just checked the UDF GUITreeView to discover that it only supports the SysTreeView32 object but not the TreeListCtrl32... So I doubt it will help here.

post-38890-12815075514915_thumb.jpg

Edited by RobOtter

Share this post


Link to post
Share on other sites
RobOtter

Any ideas? Nobody? What about some fancy DLL calls (I´m not familiar enough with that to find out myself ;) )?

Any help is greatly appreciated!

Thanks,

Rob

Share this post


Link to post
Share on other sites
PsaltyDS

That is not a Windows API control. It comes from a library that is not native to Windows. You would have to know what library it came from and find some documentation of the calls to it.

There are tools for watching windows messages and notifications in real time, but it would be a lot of work to decode the results into a reliable function. In addition, I would expect McAfee, Symantec, etc. to go out of their way to block external automation.

;)


Valuater's AutoIt 1-2-3, Class... Is now in Session!For those who want somebody to write the script for them: RentACoder"Any technology distinguishable from magic is insufficiently advanced." -- Geek's corollary to Clarke's law

Share this post


Link to post
Share on other sites
RobOtter

That is not a Windows API control. It comes from a library that is not native to Windows.

Thanks for your input. From what I´ve (not) found on Google, I already feared that ;)

There are tools for watching windows messages and notifications in real time, but it would be a lot of work to decode the results into a reliable function. In addition, I would expect McAfee, Symantec, etc. to go out of their way to block external automation.

;)

You are damn right, unfortunately. I already tried to post messages to it, but it did not work. So I have to mimic user actions for querying / modifying the list control :)

Thanks for confirming my suspicions, now I know there is no other way...

Rob

Share this post


Link to post
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
Sign in to follow this  

×