Jump to content
Parthiban

Unable to get the Item text using _GUICtrlListView_GetItemTextArray

Recommended Posts

Hi

I try to get the item text of a list view. I can able to get the row count , column count of the list view and unable to get the item text. It returns only empty text always.

Please help me.

Thanks in Advance.

#include <GuiComboBox.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <GuiListBox.au3>
#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>

Example()

Func Example()

   Local $sWindowName = "MyWindow"

   If WinExists($sWindowName) Then
      WinActivate($sWindowName)
      WinWaitActive($sWindowName)

      send("{F3}")
      Sleep(100)

      $classDetails = "[CLASS:SysListView32; INSTANCE:1]"
      $hLV = ControlGetHandle($sWindowName, "", $classDetails)
      $iRows = _GUICtrlListView_GetItemCount($hLV)
      MsgBox($MB_OK, "Row Count",$iRows)
      $aItem = _GUICtrlListView_GetItemTextArray($hLV,1)
      MsgBox($MB_OK, "Column Count",$aItem[0])

      For $i = 1 To $aItem[0]
         $sText = String($aItem[$i])
         MsgBox($MB_OK, "Column " & String($i),$sText)
      Next
   EndIf

EndFunc

Post.au3

Edited by Parthiban

Share this post


Link to post
Share on other sites

Use the code editor please if you don't need a screen reader. Select <> in the editor.


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites

The code you provided is hard to read for some people. So it's good to place in a code box that offers syntax highlighting and tabulation of code. If for some reason you did this on purpose e.g. screen reader, then please forgive me.


UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Share this post


Link to post
Share on other sites

Thanks.. as it is my first post i did like that. Thanks for correcting myself..

I try to get the item text of a list view. I can able to get the row count , column count of the list view and unable to get the item text. It returns only empty text always.

Please help me.

Thanks in Advance.

#include <GuiComboBox.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <GuiListBox.au3>
#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>

Example()

Func Example()

   Local $sWindowName = "MyWindow"

   If WinExists($sWindowName) Then
      WinActivate($sWindowName)
      WinWaitActive($sWindowName)

      send("{F3}")
      Sleep(100)

      $classDetails = "[CLASS:SysListView32; INSTANCE:1]"
      $hLV = ControlGetHandle($sWindowName, "", $classDetails)
      $iRows = _GUICtrlListView_GetItemCount($hLV)
      MsgBox($MB_OK, "Row Count",$iRows)
      $aItem = _GUICtrlListView_GetItemTextArray($hLV,1)
      MsgBox($MB_OK, "Column Count",$aItem[0])

      For $i = 1 To $aItem[0]
         $sText = String($aItem[$i])
         MsgBox($MB_OK, "Column " & String($i),$sText)
      Next
   EndIf

EndFunc

 

Share this post


Link to post
Share on other sites

Hi Mikell

I have tried so many sysListview and i can able to fetch the item text other than the one i have to fetch. I can able to fetch the row count and column count perfectly but the array having the empty text. I wonder how.

Also i have tried to fetch the contents by Send("{CTRLDOWN}c{CTRLUP}"). But when fire this another window is opening as its functionality. Failed in this method also.

Share this post


Link to post
Share on other sites

Hmm I see, please try this

Func Example()
   Local $sWindowName = "MyWindow"  

   If WinExists($sWindowName) Then
      WinActivate($sWindowName)
      WinWaitActive($sWindowName)
   ;   send("{F3}")
   ;   Sleep(100)
      $classDetails = "[CLASS:SysListView32; INSTANCE:1]"
      $hLV = ControlGetHandle($sWindowName, "", $classDetails)
      $iRows = _GUICtrlListView_GetItemCount($hLV)
  ;    MsgBox($MB_OK, "Row Count",$iRows)
      $aItem = _GUICtrlListView_GetItemTextArray($hLV,1)
  ;    MsgBox($MB_OK, "Column Count",$aItem[0])

       Local $res[$iRows][$aItem[0]]
       For $i = 0 to $iRows-1
           $tmp = _GUICtrlListView_GetItemTextArray($hLV, $i)
               For $j = 1 to $tmp[0]
                   $res[$i][$j-1] = $tmp[$j] 
               Next
       Next
      _ArrayDisplay($res)

    EndIf
EndFunc

 

Share this post


Link to post
Share on other sites

I faced the same issue, I copied the Mikell's script and run that and I found I can got the column item of listview but can't fetch the text and the result as below screen, who could tell me why, bit thanks.

BTW, only the specific application's list view can't fetch text and I CAN fetch from other applications' list view, so strange.

 

 

autoit_error.PNG

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

×
×
  • Create New...