Sign in to follow this  
Followers 0

Can't control SysListView32 in VirtualDub

6 posts in this topic

Posted (edited)

Hi

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

Problem:

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.

post-64854-0-44580900-1334400528_thumb.p

Example:

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



Posted

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.

;)

Share this post


Link to post
Share on other sites

Posted (edited)

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
Name:	
Advanced (Class):	[CLASS:SysListView32; INSTANCE:1]
ID:	1023
Text:	
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 <<<<
OK
Cancel
&Add...
&Delete
Move &Up
Move D&own
C&ropping...
&Configure...
&Blend
&Show image formats
Show &pixel aspect ratios
Show &frame rates
O&ptions...


>>>> Hidden Text <<<<

What tell's it to a pro? ^^

Edited by bumsbomber

Share this post


Link to post
Share on other sites

Posted

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

Posted (edited)

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

Posted

You can add this at top of your script:

#AutoIt3Wrapper_UseX64=n

then Scite4Autoit3 will do the rest for you automatically.

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  
Followers 0