oldboyxyz has asked for the wisdom of the Perl Monks concerning the following question:

Hi,

use Win32::GuiTest qw( :ALL ); use warnings; use Win32::GUI(); my @whnds = FindWindowLike( undef, "NT App" ); if( !@whnds ){ die "Cannot find window with title/caption App\n"; }else{ printf( "Window handle of App application is %x\n", $whnds[ 0 + ] ); } my @lst = GetChildWindows($whnds[ 0 ] ); my $edit_ctrl_id = 233; #Edit window, 193 Hex my @edit = FindWindowLike( $whnds[ 0 ], undef, "^SysListView32"); if( !@edit ){ die "Cannot find window handle for Edit control\n"; }else{ printf( "Edit window handle is %x\n", $edit[ 0 ] ); SelListViewItem( $edit[ 0 ], 1); }
Using the above code im able to select a particular item using this command SelListViewItem( $edit 0 , 1). But i want to get its contents as array or string. Please help me Thanks in advance

Replies are listed 'Best First'.
Re: Want to get contents of list item in a list view window
by Anonymous Monk on May 11, 2013 at 12:02 UTC

    But i want to get its contents as array or string. Please help me Thanks in advance

    At your cli type perldoc Win32::GuiTest |ack -in listview

    Then use one of the listview functions mentioned (hint GetListViewContents )

      Hi, Thanks for your reply I want to doble click a speific list item .In the below code I'm able to selct a list item but when i use GetListViewContents I'm not able to get its contents so the alternate way is to double click the list view item selected and get the contents from the pop up that appers .The code does not double click the selcted list item but a random list item.Please Guide me on this. Thank You

      use Win32::GuiTest qw( :ALL ); use warnings; use Win32::GUI(); my @whnds = FindWindowLike( undef, "NT App" ); if( !@whnds ){ die "Cannot find window with title/caption App\n"; }else{ printf( "Window handle of App application is %x\n", $whnds[ 0 + ] ); } my @lst = GetChildWindows($whnds[ 0 ] ); my $edit_ctrl_id = 233; #Edit window, 193 Hex my @edit = FindWindowLike( $whnds[ 0 ], undef, "^SysListView32"); if( !@edit ){ die "Cannot find window handle for Edit control\n"; } else{ printf( "Edit window handle is %x\n", $edit[ 0 ] ); SelListViewItem( $edit[ 0 ], 1); sleep(1); SendMouse('{LEFTCLICK}'); sleep(1); SendMouse('{LEFTCLICK}{LEFTCLICK}'); # my @list = GetListViewContents(); # print @list; sleep(4); my @message = FindWindowLike( undef, "event details" ); if( !@message ){ die "Cannot find window with title/caption event details\n"; }else{ printf( "Window handle of event details application is %x\n" +, $message[ 0 ] ); my @editVal = FindWindowLike( $message[ 0 ], undef, "^Edit") +; if( !@editVal ){ die "Cannot find window handle for editVal control\n"; }else{ printf( "editVal window handle is %x\n", $editVal[ 0 ] ); } my $result = WMGetText($editVal[ 0 ]); print $result." result \n"; MouseClick('OK'); } }