#528 closed Feature Request (Rejected)
Native Control Identification and Property Retrieval using Active Acessibility
| Reported by: | zfisherdrums | Owned by: | |
|---|---|---|---|
| Milestone: | Component: | AutoIt | |
| Version: | Severity: | None | |
| Keywords: | MSAA | Cc: |
Description
<disclaimer>
I request this understanding that it may be outside of AutoIT's intended purpose and that implementation may be prohibitively lengthy/difficult. But, "you have not because you ask not."
</disclaimer>
Control ID Descriptions should include options for accName, accRole, child index, and an optional Root handle to aid in expediting tree traversing.
Examples:
; Click on the VMWare Server list item $msaaControl = ControlClick( "Add or Remove Programs", "", "[NAME:VMWare Server;ROLE:listitem;ROOT:0x00050496]" )
; Click on all list items
$count = ControlCommand( "Add or Remove Programs", "", "[NAME:Add or Remove Programs]", "GetChildrenCount", "" )
For $i = 1 to $count
$role = ControlCommand( "Add or Remove Programs", "", "[NAME:Add or Remove Programs]", "GetRole", $i )
if ( $role = "listitem" ) then
ControlClick( "Add or Remove Programs", "", "NAME:Add or Remove Programs];CHILD:" & $i & "]" )
endif
Next
Attachments (0)
Change History (3)
comment:2 by , on Aug 21, 2008 at 10:00:14 AM
| Milestone: | Future Release |
|---|---|
| Version: | Other |
Automatic ticket cleanup.
comment:3 by , on Sep 21, 2008 at 8:19:01 PM
| Resolution: | → Rejected |
|---|---|
| Status: | new → closed |
I believe that objects implementing accessibility functionality do so via a COM interface that is IDispatch enabled. In short, that means you should be able to, in some manner or other, access it via AutoIt's COM functionality.
I don't see this being built-in.

Title correction:
should read "Accessibility"
Code example correction:
; Click on all list items $count = ControlCommand( "Add or Remove Programs", "", "[NAME:Add or Remove Programs]", "GetChildrenCount", "" ) For $i = 1 to $count $role = ControlCommand( "Add or Remove Programs", "", "[NAME:Add or Remove Programs]", "GetRole", $i ) if ( $role = "listitem" ) then ControlClick( "Add or Remove Programs", "", "[NAME:Add or Remove Programs;CHILD:" & $i & "]" ) endif Next