Sign in to follow this  
Followers 0
claude21

How to enable/disable a button inside a toolbar ?

3 posts in this topic

Hi all,

I'm trying to re-enable a disabled (greyed) button on a toolbar from an external app. Autoit info says the class of the toolbar control is "msvb_lib_toolbar" but I can't see any references to the buttons themselves, nor I can't see any CommandID in the toolbar tab.

I've not found any information on controlling an external app toolbar buttons here, so if you have any information, I would be very grateful !

Thanks again

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Without knowing the commandID of the control (which was invisible for me), it's pretty hard to manipulate it. I found it myself this way (empirical way :D :

note : replace [CLASS:ThunderRT6MDIForm] and [CLASS:msvb_lib_toolbar] with your own

#Include <GuiToolBar.au3>

$title = WinGetTitle("[CLASS:ThunderRT6MDIForm]", "")

$hWnd = ControlGetHandle($title, "", "[CLASS:msvb_lib_toolbar]")

$result = ''
If isPtr($hWnd) then
    msgbox(0, '', "The handle is : " & $hWnd)
    For $i = 0 to 65536
        if _GUICtrlToolbar_EnableButton($hWnd, $i) then $result &= $i & ','
    next
Else
    msgbox(0, '', "This is not a valid pointer")
Endif

MsgBox(0, $title, "The following commandID are found to be valid for the control : " & $result )

then you can try to hide or disable each control to see which one is affected

Edited by claude21

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

I am trying to adapt your script but it fails.

$title = WinGetTitle("[CLASS:1234]", "") ; 1234 is the window class name
$hWnd = ControlGetHandle($title, "", "[CLASS:xxxx; INSTANCE:4]")  ;  CLASS:xxxx; INSTANCE:4 is the advanced class for this button
If $hWnd = "" Then MsgBox(0,"","error") ; for debug purpose
_GUICtrlButton_Enable($hWnd, False)
Sleep(10000)  ; to give time to check if the button is really disabled
Exit

The script itself doesn't fail but the button doesn't get disabled.

What am I doing wrong?

Edited by Akshay07

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