Jump to content

SysListView get text from external application


Recommended Posts

I need to extract text from a Listview but I have problems.

Correctly extract data such as item number, column number, etc , but do not extract the text (return ||||||||)

my script:

CODE
$title = "WINDOW NAME"

; OK return: 0x0007043A

$hListView = ControlGetHandle($title, "", "SysListView321")

ConsoleWrite("$hListView " & $hListView & @CRLF)

; OK return: 4

$aInfo = _GUICtrlListView_GetColumnCount($hListView)

ConsoleWrite("$aInfo " & $aInfo & @CRLF)

; OK return: 394322

$aHeader = _GUICtrlListView_GetHeader($hListView)

ConsoleWrite("$aHeader " & $aHeader & @CRLF)

; ERROR return: nothing

$tmp = _GUICtrlListView_GetItemText($hListView, 2, 1)

ConsoleWrite("$tmp " & $tmp & @CRLF)

; OK return: 45

$Var = _GUICtrlListView_GetItemCount($hListView)

ConsoleWrite("Count " & $Var & @CRLF)

; ERROR return:

; -->ListView:|||

; -->ListView:|||

; -->ListView:|||

; -->ListView:|||

If $Var > 1 Then

For $i = 0 To 3

ConsoleWrite("-->ListView:" & _GUICtrlListView_GetItemTextString($hListView, $i) & @CRLF)

Next

EndIf

info:

CODE

>>>> Window <<<<

Title: WINDOW NAME

Class: TNCMDTARGETFRM__882

Position: 1464, -6

Size: 786, 525

Style: 0x96CA0000

ExStyle: 0x00000100

Handle: 0x0006032C

>>>> Control <<<<

Class: SysListView32

Instance: 1

ClassnameNN: SysListView321

Advanced (Class): [CLASS:SysListView32; INSTANCE:1]

ID: 101

Text:

Position: 10, 389

Size: 246, 77

ControlClick Coords: 121, 60

Style: 0x5020540D

ExStyle: 0x00000000

Handle: 0x0007043A

>>>> Mouse <<<<

Position: 1598, 465

Cursor ID: 0

Color: 0xFFFFFF

>>>> StatusBar <<<<

>>>> Visible Text <<<<

WINDOW NAME

tn_sprite

>>>> Hidden Text <<<<

Link to comment
Share on other sites

Perhaps you confused item number with column numbers? You have fortyfive items (0-34, 0-based) and four subitems (1 thru 4, 1-based). The way you did the loop only reads the first four items, not all four columns. Try this to see if it gets anything from the other items:

If $Var > 1 Then
    For $i = 0 To $Var - 1
        ConsoleWrite("ListView item " & $i & ":  " & _GUICtrlListView_GetItemTextString($hListView, $i) & @CRLF)
    Next
EndIf

:)

Edited by PsaltyDS
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
Link to comment
Share on other sites

I know that does not control all items ... the problem is that the function GetItemTextString returns "|||||||" per line, not the text content

Perhaps you confused item number with column numbers? You have fortyfive items (0-34, 0-based) and four subitems (1 thru 4, 1-based). The way you did the loop only reads the first four items, not all four columns. Try this to see if it gets anything from the other items:

If $Var > 1 Then
    For $i = 0 To $Var - 1
        ConsoleWrite("ListView item " & $i & ":  " & _GUICtrlListView_GetItemTextString($hListView, $i) & @CRLF)
    Next
EndIf

:)

Link to comment
Share on other sites

I know that does not control all items ... the problem is that the function GetItemTextString returns "|||||||" per line, not the text content

What's the application that creates the ListView? It would help if we could reproduce the symptoms.

:)

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
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...