Jump to content

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
Link to comment
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

Link to comment
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

Link to comment
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

 

Link to comment
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.

Link to comment
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

 

Link to comment
Share on other sites

  • 3 years later...

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

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...