Opened 3 years ago

Last modified 3 years ago

#3775 assigned Feature Request

INSTANCE ignored when ID also given in a ControlID

Reported by: AlanParry Owned by: Jpm
Milestone: Component: AutoIt
Version: Severity: None
Keywords: Cc:


For a ControlID like [ID:205;INSTANCE:2] the instance number is ignored and the first Control with ID=205 is always returned.
For example when used in an expression like:

Local $hBtn = ControlGetHandle ($hTopWnd, "", "[ID:205;INSTANCE:2]")

Yes I know its wierd to have 2 controls with the same ID but there's this program I'm trying to automate has 2 buttons in different panes that do the same action - but it's important that I get the control in the correct pane.

Tested in and


Attachments (0)

Change History (6)

comment:1 Changed 3 years ago by Jpm

Can you post a complete small repro script so I can reproduce and hopefully fix it

comment:2 Changed 3 years ago by anonymous

This shows it:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPISysWin.au3>


Func Example ()

    Const $ID = 123
    Const $style = $WS_CHILD+$WS_BORDER+$WS_VISIBLE

    Local $hGui = GuiCreate ("Test", 500, 120, 200, 200)

    ; use _WinAPI_CreateWindowEx to make controls with same ID
    Local $hwnd1 = _WinAPI_CreateWindowEx (0, "Static", "L1", $style, 5, 5, 230, 100, $hGui, $ID)
    Local $hwnd2 = _WinAPI_CreateWindowEx (0, "Static", "L2", $style, 255, 5, 230, 100, $hGui, $ID)
    GUISetState(@SW_SHOW, $hGUI)

    Local $hGet1 = ControlGetHandle ($hGui, "", "[ID:" & $ID & ";INSTANCE:1]")
    Local $hGet2 = ControlGetHandle ($hGui, "", "[ID:" & $ID & ";INSTANCE:2]")

    ControlSetText ($hwnd1, "", "", "HWnd is" & @TAB & $hWnd1 & @CRLF & "Got " & @TAB & @TAB & $hGet1)
    ControlSetText ($hwnd2, "", "", "HWnd is" & @TAB & $hWnd2 & @CRLF & "Got " & @TAB & @TAB & $hGet2 & @CRLF & @CRLF  & @TAB & "WRONG!!")

   While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
EndFunc   ;==>Example


comment:3 Changed 3 years ago by Jpm

I will have a look

comment:4 Changed 3 years ago by Jpm

  • Owner set to Jon
  • Status changed from new to assigned
  • Type changed from Bug to Feature Request

By design AutoIt priorise the ID and stop searching other properties.
I leave to Jon the decision to change this behavior.
I will add a comment in the doc.

comment:5 Changed 3 years ago by TicketCleanup

  • Version deleted

Automatic ticket cleanup.

comment:6 Changed 3 years ago by Jpm

  • Owner changed from Jon to Jpm

In fact I propose a fix to Jon

Guidelines for posting comments:

  • You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
  • In-depth discussions should take place on the forum.

For more information see the full version of the ticket guidelines here.

Add Comment

Modify Ticket

as assigned The owner will remain Jpm.

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.