Opened 5 years ago
Last modified 20 months ago
#3775 assigned Feature Request
INSTANCE ignored when ID also given in a ControlID
| Reported by: | AlanParry | Owned by: | Jon |
|---|---|---|---|
| Milestone: | Component: | AutoIt | |
| Version: | Severity: | None | |
| Keywords: | Cc: |
Description
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 3.3.14.5 and 3.3.15.3
Alan
Attachments (0)
Change History (7)
comment:1 Changed 5 years ago by Jpm
comment:2 Changed 5 years ago by anonymous
This shows it:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPISysWin.au3>
Example()
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
ExitLoop
EndSwitch
WEnd
GUIDelete($hGUI)
EndFunc ;==>Example
Alan
comment:3 Changed 5 years ago by Jpm
Thanks
I will have a look
comment:4 Changed 5 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:7 Changed 20 months ago by Jpm
- Owner changed from Jpm 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.

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