I am still having a difficult time getting this to work. Here is what I have so far. Can anyone help me out?
############### sub getListviewItems{ my $hwnd = shift || return "No treeview handle"; #if no result send a WM_GetText message to the window $WmSendMessage ||= new Win32::API("user32", "SendMessageA", [N, N, + N, P],'N') || return "SendMessageA Error"; my $TVGN_ROOT =0; my $TVGN_NEXT =1; my $TVGN_PREVIOUS =2; my $TVGN_PARENT =3; my $TVGN_CHILD =4; my $TVGN_FIRSTVISIBLE =5; my $TVGN_NEXTVISIBLE =6; my $TVGN_PREVIOUSVISIBLE =7; my $TVGN_DROPHILITE =8; my $TVGN_CARET =9; my $TVGN_LASTVISIBLE =10; my $TV_FIRST=4352; my $TVM_GETNEXTITEM=$TV_FIRST+10; # 1. You pass TVGN_ROOT/null, to get a handle to the root item in +the display. my $roothandle = $WmSendMessage->Call($hwnd,$TVM_GETNEXTITEM, $TVG +N_ROOT, 0); print "Root Handle: $roothandle\n"; # 2. Then you pass TVGN_CHILD/roothandle (from above) to get the h +andle to the first child. my $firstchildhwnd = $WmSendMessage->Call($hwnd,$TVM_GETNEXTITEM, +$TVGN_CHILD, $roothandle); print "firstchildhwnd: $firstchildhwnd\n"; # 3. # 1. Then you use TVGN_NEXT/firstChildHandle (from above) to +iterate the first level children. # 2. And TGVN_CHILD/firstChildHandle to process the grandchil +dren... while(my $tvwnd=$WmSendMessage->Call($hwnd,$TVM_GETNEXTITEM, $TVGN +_NEXT, $roothandle)){ my $text=getWindowText($tvwnd); print "Child Handle: $tvwnd, Text: $text\n"; } return 1; } ############### sub getWindowText{ my $hwnd = shift || return; $GetWindowText ||= new Win32::API("user32", "GetWindowText", ['N', + 'P', 'N'], 'N') || return; my $title = " " x 1024; my $titleLen = 1024; my $result = $GetWindowText->Call($hwnd, $title, $titleLen); if($result){return substr($title, 0, $result);} #if no result send a WM_GetText message to the window $WmSendMessage ||= new Win32::API("user32", "SendMessageA", [N, N, + N, P],'N') || return; my $WM_GETTEXT=13; my $text = " " x 2048; my $textLen = 2048; my $result = $WmSendMessage->Call($hwnd,$WM_GETTEXT, $textLen, $te +xt); if($result){return substr($text, 0, $result);} }

In reply to Re^6: Enumerate a Win32 Treeview by slloyd
in thread Enumerate a Win32 Treeview by slloyd

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.