Jump to content
Sign in to follow this  
jdegraff

Can't get text items from ControlTreeView

Recommended Posts

I'm trying to add a bit of functionality to the FastStone File Rename dialog. I can access every control that I need to except the one that contains the files to be renamed. If I do some exploring in a vbScript shell I get

:c  = "TTntTreeView.UnicodeClass1"
:?aut.ControlTreeView(win,"",c,"GetItemCount","","")
5

You can see that the treeview control reports having five items, which is the number displayed. If I manually select (mouse) item #3 I can see the result by

:?aut.ControlTreeView(win,"",c,"GetSelected","1","")
#3

But I do not know how to get the text for the selected item. If "#3" is the item reference then I should be able to

:?aut.ControlTreeView(win,"",c,"GetText","1","#3")

or

:?aut.ControlTreeView(win,"",c,"GetText","1","#3")

if I go strictly by the help file, but it returns nothing.

:?aut.ControlTreeView(win,"",c,"Exists","","3")
1

So it appears that item 3 exists, but

:?aut.ControlTreeView(win,"",c,"GetText","","3")

does not have any text???

:?aut.ControlTreeView(win,"",c,"Exists","","9")
1

and it also appears item 9 exists (it does not)

:?aut.ControlTreeView(win,"",c,"Select","","")
1

causes the first item to be selected, as does

:?aut.ControlTreeView(win,"",c,"Select","","3")
1

Here is the output from the Window Info tool

>>>> Window <<<<
Title:  Batch Image Convert / Rename
Class:  TBatchConvert
Position:   501, 83
Size:   760, 520
Style:  0x16CD0000
ExStyle:    0x00010100
Handle: 0x0000000001950796

>>>> Control <<<<
Class:  TTntTreeView.UnicodeClass
Instance:   1
ClassnameNN:    TTntTreeView.UnicodeClass1
Name:   
Advanced (Class):   [CLASS:TTntTreeView.UnicodeClass; INSTANCE:1]
ID: 37030040
Text:   
Position:   354, 79
Size:   378, 188
ControlClick Coords:    108, 86
Style:  0x54010039
ExStyle:    0x00000200
Handle: 0x0000000002350898

>>>> Mouse <<<<
Position:   970, 279
Cursor ID:  0
Color:  0xE1E1E1

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<
Batch Rename
...
D:\temp\picsave\
Images + Videos (*.jpg;*.jpe;*.jpeg;*.bmp;*.gif;*.tif;*.tiff;*.cur;*.ico;*.png;*.pcx;*.jp2;*.j2k;*.tga;*.ppm;*.wmf;*.psd;*.crw;*.nef;*.cr2;*.orf;*.raf;*.dng;*.mrw;*.pef;*.srf;*.arw;*.rw2;*.x3f;*.sr2;*.srw;*.nrw;*.rwl;*.eps;*.avi;*.mpeg;*.mpg;*.wmv;*.mov;*.mp4;*.mts;*.mkv;*.m4v)
Search and Replace
Use Filename Template
No Sort
Clear
Remove
Add All
Add
Preview
Close
Rename
No Change
?
 

 

2018-03-03_135845.jpg

2018-03-03_135948.jpg

Edited by jdegraff
removed extraneous text

Share this post


Link to post
Share on other sites

Barring an explanation, can someone just provide me with the correct documentation for ControlTreeView. The example given in the documentation is

Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
oAutoIt.ControlListView "C:\", "", "SysTreeView321", "SelectAll", "", ""
oAutoIt.ControlListView "C:\", "", "SysTreeView321", "Deselect", "2", "5"


which uses a ListView rather than a TreeView.

Share this post


Link to post
Share on other sites

the image you posted is not a standard ControlTreeView

help states

Quote

ControlTreeView

Sends a command to a TreeView32 control.

 

Edited by Earthshine

My resources are limited. You must ask the right questions

 

Share this post


Link to post
Share on other sites

that is a Delphi control. Standard AutoIt probably will not work. junkew had some stuff that dealt with Delphi I think... search the form for Delphi control I guess


My resources are limited. You must ask the right questions

 

Share this post


Link to post
Share on other sites

Well, that explains a lot. I had no idea that it was a custom control. I think I have a workaround for what I want to do. It's not pretty but it will get the job done. Thanks.

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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By nacerbaaziz
      hello evrybody
      here is an example about how to split your texts using a delimiter with the ability to select how much of delimiters shows in each colum  with $i_number
      e.g
      you have a long text and you want to split it in an array
      that evry colum have a number (n) of lines
      i made a function that do that for you
      just call it with a three params
      $s_text
      your text
      $i_number
      the number that you want to put in each col
      $s_siparator
      the siparator
      default is "|"
      here is the function with example
      i hope that it will be useful for you
       
      ****
       
      #include <Array.au3> $s_txt = "some text1some text2|some text3|some text4|some text5|some text6" $array = splitText($s_txt, 2) _ArrayDisplay($array) Func splitText($s_text, $i_number, $s_siparator = "|") Local $a_TXT = StringSplit($s_text, $s_siparator) Local $a_Return[$a_TXT[0] + 1] If ($a_TXT[0] <= $i_number) Or ($i_number <= 0) Then ReDim $a_Return[2] $a_Return[0] = 1 $a_Return[1] = $s_text Return $a_Return EndIf Local $i_Processed = 1, $i_arrayProcessed = 1 Do For $i = $i_Processed To ($i_Processed + $i_number) - 1 If ($a_TXT[0] < $i) Then ExitLoop If Not ($a_Return[$i_arrayProcessed]) Then $a_Return[$i_arrayProcessed] = $a_TXT[$i] Else $a_Return[$i_arrayProcessed] &= $s_siparator & $a_TXT[$i] EndIf $i_Processed += 1 Next $i_arrayProcessed += 1 Until ($a_TXT[0] < $i_Processed) ReDim $a_Return[$i_arrayProcessed] $a_Return[0] = $i_arrayProcessed - 1 Return $a_Return EndFunc ;==>splitText
      accept my greetings
      thanks to
      @Dan_555
      for his notes
       
    • By nacerbaaziz
      hello autoit team
      please i've a question for you.
      am creating a audio player
      and in this audio player i want to show the current trac info
      such as the total time and the position ... etc
      i know i can show it as label
      but the screen reader for the blind read the text every change
      because it have a screen scan
      what i want is to show this informations but such image or icon
      i mean i need to create
      GUICtrlCreatepic or GUICtrlCreateicon ....
      or some thing as that
      and show this informations as image on it
      i think that i can do that with the 
      _GDIPlus functions
      but i couldn't find the currect way to do it
      i tried the _GDIPlus_GraphicsDrawString
      but i couldn't know how it work
      what i need is a small example that create a GUI
      and add a multy line text to it as graphic or image.
      so i need a simple way because it will changed every sec
      i hope any one can help me to do that
      global $GUI = GUICreate("text", 400, 400) global $label = GUICtrlCreateLabel(GetText(), 10, 10, 380, 380) GUISetState() do sleep(100) until GUIGetMSG() = -3 exit func GetText() return StringFormat("file name is test.mp3 \r\n total time is 00:30:00 \r\n position is 00:05:50") endFunc  
    • By nacerbaaziz
      hello autoit group
      please i've a question
      i had make a function that put some thing into the clipBoard and paste it
      using the send function
      e.g
      ClipPut("hello")
      send("^v")
       
      when the keyboard is english all things work fine
      but when the keyboard is arabic the send command write the ltr v insted of the text in clipboard
      i was tryed to use
      send("{ctrldown}v{ctrlUp}")
      but the same
      please can any one help me
       
    • By Kiko745
      Hello!
      I am new to autoit so please if someone could help me. I am trying to combine multiple .txt files but I can't get it right. In every file are the exact amout of lines ( for example here are 2 ) ,            I don't want to make it for just 2 lines for each txt files but for all the lines the txt files contains. The thing I want to do is :
      Text File 1
      Hello my name
      I am a big
      ...
      Text File 2
      is Fred,
      Potato head for
      ...
      Text File 3
      and I like to eat pizza.
      Not getting this right.
      ...
      ------------------- Combine them all into one txt file like here ------------------------------
      Final Text file
      Hello my name is Fred, and I like to eat pizza.
      I am a big Potato head for Not getting this right.
      ...
       
      Thanks for any advice!
      P.S. Sorry for my English, not my first language.
       
    • By Kruxe
      Hello Everyone,
      I am very green when it comes to AutoIT, I have recently started using it to automate a job that i perform using MS Excel and that is working great. Recently I have been faced with a challenge I which i need to copy a specific set of lines from one .txt file and past them, overwriting a specific set of lines in a different .txt file. I honestly have no clue how I can copy the specified lines and transfer them. What functions / commands could I use and how could I lay them out I AutoIT? Any and all help will be appreciated. 
      Thanks!
      Kruxe
×
×
  • Create New...