[jawsscripts] Re: Scripting Avaya One-X Agent

  • From: "John Robichaud" <John_Robichaud@xxxxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Fri, 8 Nov 2013 15:11:10 -0500

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

Other related posts: