Jump to content
Sign in to follow this  

Can't control SysListView32 in VirtualDub

Recommended Posts



I hope there are people out there which have installed VirtualDub (Open Source) or are willing to install it to help me ;)

What I want to do:

I want to see what filters are set and being able to (de-)select, delete or manipulate them...


I don't get all the informations I need out of the SysListView32 control and so I can't manipulate it with AutoIt. Some commands work (like "GetItemCount"), but most does not (like "GetText"). The control seems to be no default SysListView32 - Please look at the attachement if you don't have installed VirtualDub.



Open up VirtualDub, press CTRL+F to open up the filters dialog, and add some filters of your choice and "null transform" as I use it's name in the example code. Then run the code below.

#Include <GuiListView.au3>

$filters_title = "[TITLE:Filters]"
$filters_cid   = "[CLASS:SysListView32; INSTANCE:1]"
$filters_hwnd = ControlGetHandle($filters_title,"",$filters_cid)

$clv_filters_count  = ControlListView($filters_title,"",$filters_cid,"GetItemCount")
$clv_filters_select = ControlListView($filters_title,"",$filters_cid,"GetSelected")
$clv_filters_text   = ControlListView($filters_title,"",$filters_cid,"GetText", 0, 0) ; does not work
$clv_filters_0trans = ControlListView($filters_title,"",$filters_cid,"FindItem","null transform") ; does not work

$gui_filters_count  = _GUICtrlListView_GetItemCount($filters_hwnd)
$gui_filters_select = _GUICtrlListView_GetItemSelected ($filters_hwnd,1)
$gui_filters_text   = _GUICtrlListView_GetItemTextString($filters_hwnd,-1) ; Only 3 separators as result
$gui_filters_0trans = _GUICtrlListView_FindText($filters_hwnd,"null transform",-1,True) ; I get a 10-char number (?)

ConsoleWrite("ControlListView  ::: " & "Filter Count: " & $clv_filters_count & " / Selected: " & $clv_filters_select & " / Item Text: " & $clv_filters_text & " / null transform: " & $clv_filters_0trans & @CRLF)
ConsoleWrite("_GUICtrlListView ::: " & "Filter Count: " & $gui_filters_count & " / Selected: " & $gui_filters_select & " / Item Text: " & $gui_filters_text & " / null transform: " & $gui_filters_0trans & @CRLF)

Any chance I can work with the control? I really hope you can help me :)

Edited by bumsbomber

Share this post

Link to post
Share on other sites

Examine the control with the AutoIt Window Info Tool (AU3Info.exe), and post the contents of the "Summary" tab. That will tell much more than the screen shot.


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

Share this post

Link to post
Share on other sites

Oh, of course, sorry!

>>>> Window <<<<
Title:  Filters
Class:  #32770
Position:   361, 162
Size:   521, 357
Style:  0x94CC004C
ExStyle:    0x00010100
Handle: 0x000404E0

>>>> Control <<<<
Class:  SysListView32
Instance:   1
ClassnameNN:    SysListView321
Advanced (Class):   [CLASS:SysListView32; INSTANCE:1]
ID: 1023
Position:   11, 11
Size:   405, 284
ControlClick Coords:    193, 31
Style:  0x5001880D
ExStyle:    0x00000204
Handle: 0x00020500

>>>> Mouse <<<<
Position:   569, 230
Cursor ID:  0
Color:  0xFFFFFF

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<
Move &Up
Move D&own
&Show image formats
Show &pixel aspect ratios
Show &frame rates

>>>> Hidden Text <<<<

What tell's it to a pro? ^^

Edited by bumsbomber

Share this post

Link to post
Share on other sites

This is what I get using your code:

ControlListView  ::: Filter Count: 2 / Selected: 1 / Item Text:  / null transform: -1
_GUICtrlListView ::: Filter Count: 2 / Selected: True / Item Text: |320x240|320x240|null transform / null transform: -1

Seems fine to me. Is your AutoIt set to compile as x86 or x64? AutoIt x86 is needed to access external x86 Listview details.

Share this post

Link to post
Share on other sites

Damnit, you're right! It stands in the documentation and i've read it, but I didn't knew I've had installed or compiled with AutoIt x64.

Now it works fine ;) Big thanks.

Edited by bumsbomber

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