Doug, Thanks for the code but can you explain how one uses it. To me at least its daunting and I have no idea how to begin. I also have a simpler question. I've used accessibleTree to find all the objects that I'm interested in and have saved each to an object variable. How do you move to each object and perform a mouse click on them? The only Jaws scripting function I can find is ClickObjectByName but this doesn't work in all cases because of its dependency on window handle. There's only a single window handle in this Avaya interface and it does not appear to contain all the objects I've located in AccessibleTree. John -----Original Message----- From: jawsscripts-bounce@xxxxxxxxxxxxx [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Doug Lee Sent: Friday, November 08, 2013 2:01 PM To: jawsscripts@xxxxxxxxxxxxx Subject: [jawsscripts] Re: Scripting Avaya One-X Agent Then here it is, hand edited a bit to get rid of some oddities that my system puts in it that don't make any sense. This is current as of JAWS 15 also as far as I can tell. I generated this one under JAWS 13, and that version had additions as compared to JAWS 12. Beware of that if your scripts need to port back that far. Output from Lib AccessibleObjectTools.dll: dispinterface IAccessibleObjectTreeBuilder Member count 1 function Build(I4 hwndAsLong) as Dispatch Obtains a cached version of the UIA tree for a specified window dispinterface IAccessibleObject Member count 24 ReadProperty AutomationId as BStr ReadProperty ChildCount as I4 ReadProperty ClassName as BStr ReadProperty ClickablePoint(pointer to I4 pX, pointer to I4 pY) as Bool ReadProperty Description as BStr function FindByAutomationId(BStr desired) as pointer to IAccessibleObject function FindByClassName(BStr desired) as pointer to IAccessibleObject function FindByKeyboardFocus(I4 desired) as pointer to IAccessibleObject function FindByName(BStr desired) as pointer to IAccessibleObject function FindByRole(I4 desired) as pointer to IAccessibleObject function FindByState(I4 desired) as pointer to IAccessibleObject function FindByValue(BStr desired) as pointer to IAccessibleObject ReadProperty FirstChild as pointer to IAccessibleObject function GetXML(Bool vbIncludeDescendents) as BStr ReadProperty IsOffscreen as Bool ReadProperty Item(I4 index) as Dispatch ReadProperty Name as BStr ReadProperty NextSibling as pointer to IAccessibleObject ReadProperty Parent as pointer to IAccessibleObject ReadProperty PriorSibling as pointer to IAccessibleObject ReadProperty Rect(pointer to I4 pLeft, pointer to I4 pTop, pointer to I4 pRight, pointer to I4 pBottom) as Bool ReadProperty Role as I4 ReadProperty State as I4 ReadProperty Value as BStr On Fri, Nov 08, 2013 at 12:36:46PM -0600, Jim Bauer wrote: If you did, I never saw it. :-) I for one would find a summary of this lib useful. On 11/8/2013 12:14 PM, Doug Lee wrote: > My first method of doing this was to find the DLL and open it in > Word's VBA COM viewer. More recently I wrote something that creates a > summary of a COM lib's properties and methods. It's not perfect and I > didn't write it in a very easily portable way, but sometimes I've used > it to produce a usage summary to post here. I think I already did that > for this lib, but if not and you need it, write back here and I'll > post one to this list again. > > On Fri, Nov 08, 2013 at 11:27:24AM -0500, John Robichaud wrote: > Doug, > How do you find the COM typelib information for the accessibleTree? > John > > -----Original Message----- > From: jawsscripts-bounce@xxxxxxxxxxxxx > [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Doug Lee > Sent: Tuesday, October 29, 2013 5:49 AM > To: jawsscripts@xxxxxxxxxxxxx > Subject: [jawsscripts] Re: Scripting Avaya One-X Agent > > I found the VS FS code for getting an accessibleObjectTree and wrote code > based on that to get one of those. Then I examined the COM typelib > information for those objects to find out what I could do with them. > > On Tue, Oct 29, 2013 at 09:13:23AM +0200, Stefan Moisei wrote: > It's very unfortunate that UIA scripting is not documented at all. An > increasing number of applications use it. Ironically, I think NVDA provides > a better scripting support for it, once you get past the initial details. > Still, Doug, did you use only the functions found in visual studio scripts, > or did you find about others from some UIA interfaces? > Thanks. > www.Vortex.IM > -----Original Message----- > From: Doug Lee > Sent: Saturday, October 26, 2013 11:37 AM > To: jawsscripts@xxxxxxxxxxxxx > Subject: [jawsscripts] Re: Scripting Avaya One-X Agent > > When I coded that part of BX, I used FS scripts for, I believe, Visual > Studio as a reference. > > On Sat, Oct 26, 2013 at 09:22:02AM +0200, Bram Duvigneau wrote: > John, > I've had some discussion about this earlier on the list when I was > struggling with the MSAA functions and getting no usable results. The idea > to use this COM object came from the BX Utilities source code. > However, I still haven't found any official documentation what so ever about > this mechanism, which is to bad because we'll need it more and more in the > future. > > Bram > On 26-10-2013 3:53, John Robichaud wrote: >> Bram, >> In your example, how did you determine the COM class for the first >> parameter and the manifest file for the third parameter in >> CreateObject Ex? >> John Robichaud >> >> -----Original Message----- >> From: jawsscripts-bounce@xxxxxxxxxxxxx >> [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Bram Duvigneau >> Sent: Friday, October 25, 2013 3:01 AM >> To: jawsscripts@xxxxxxxxxxxxx >> Subject: [jawsscripts] Re: Scripting Avaya One-X Agent >> >> Hello, >> I recently scripted another Avaya product and only got access to the >> controls through UIA. Please see the simple function below that I used >> to display incoming call notifications in a message box: >> >> Void Function HandleIncomingCall () >> var object builder = createObjectEx("FreedomSci.AccessibleTree", >> False, "AccessibleObjectTools.x.manifest"), >> object o = builder.Build(hCallWindow), >> String title, >> String callType, >> String caller, >> String message >> >> let o = o.firstChild >> >> let title = FormatString("%1", o.Name) >> >> let o = o.nextSibling >> let o = o.nextSibling >> let o = o.nextSibling >> let callType = o.Name >> >> let o = o.nextSibling >> let caller = o.Name >> >> let message = FormatString("%1: %2", callType, caller) >> >> ExMessageBox (message, title, MB_OK) EndFunction >> >> >> Good luck, >> >> Bram >> On 25-10-2013 6:18, Jitendra wrote: >>> Well, I don't know if you can get any fruit out of it, but Dlee.org >>> and download the audio player scripts from there, and look the time >>> module code, if you have several windows, you may reach them, and for >>> MSAA, you may download the skype scripts, and examine the code to >>> work with objects. >>> if it does not help, and the software is trial or free to download, I >>> can try helping you. >>> Thanks, Jitendra, India. >>> John Robichaud wrote: >>>> Wondering if anyone has attempted scripting Avaya One-X Agent >>>> version >> 2.5. >>>> This is a telphone control system. >>>> Although Avaya's controls are spoken accurately when tabbing through >>>> the interface, I've been unsuccessful in creating scripts to provide >>>> direct access to each control. >>>> >>>> Using Jaws script utility mode, all controls exhibit the same handle >>>> and control ID. Class throughout is given as >>>> HwndWrapper[OneXAgentUI.exe;;7b95d218-e604]. Utility mode does give >>>> an unique Object ID, Object Name, and Object Type for each control >>>> but I've not been able to use that info to reach the controls. Can >>>> anyone suggest an approach? >>>> >>>> John Robichaud >>>> >>>> >>>> >>>> __________??? >>>> >>>> View the list's information and change your settings at >>>> http://www.freelists.org/list/jawsscripts >>>> >>>> >>>> >>> --- Disclaimer --- The information in this mail is confidential and >>> is intended solely for addressee. Access to this mail by anyone else >>> is unauthorised. Copying or further distribution beyond the original >>> recipient may be unlawful. Any opinion expressed in this mail is that >>> of sender and does not necessarily reflect that of State Bank group. >>> --- __________??? >>> >>> View the list's information and change your settings at >>> http://www.freelists.org/list/jawsscripts >>> >> >> >> __________??? >> >> View the list's information and change your settings at >> http://www.freelists.org/list/jawsscripts >> >> __________??? >> >> View the list's information and change your settings at >> http://www.freelists.org/list/jawsscripts >> > > > > __________??? > > View the list's information and change your settings at > http://www.freelists.org/list/jawsscripts > > -- > Doug Lee, Senior Accessibility Programmer SSB BART Group - > Accessibility-on-Demand mailto:doug.lee@xxxxxxxxxxxxxxxx > http://www.ssbbartgroup.com "While they were saying among themselves it > cannot be done, it was done." --Helen Keller __________??? > > View the list's information and change your settings at > http://www.freelists.org/list/jawsscripts > > __________??? > > View the list's information and change your settings at > http://www.freelists.org/list/jawsscripts > > -- > Doug Lee, Senior Accessibility Programmer SSB BART Group - > Accessibility-on-Demand mailto:doug.lee@xxxxxxxxxxxxxxxx > http://www.ssbbartgroup.com "While they were saying among themselves it > cannot be done, it was done." --Helen Keller __________o?= > > View the list's information and change your settings at > http://www.freelists.org/list/jawsscripts > > __________??? > > View the list's information and change your settings at > http://www.freelists.org/list/jawsscripts > __________??? View the list's information and change your settings at http://www.freelists.org/list/jawsscripts -- Doug Lee, Senior Accessibility Programmer SSB BART Group - Accessibility-on-Demand mailto:doug.lee@xxxxxxxxxxxxxxxx http://www.ssbbartgroup.com "While they were saying among themselves it cannot be done, it was done." --Helen Keller __________o?= View the list's information and change your settings at http://www.freelists.org/list/jawsscripts __________� View the list's information and change your settings at http://www.freelists.org/list/jawsscripts