[jawsscripts] Re: Scripting A Labeled Graphic

  • From: "Travis Roth" <travis@xxxxxxxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Wed, 22 May 2013 07:27:06 -0500

Your logic seems good to me.
However, if there is some issue with tracking focus in this application
perhaps GetFocus() is failing? Have you tried GetCurrentWindow()? 
Also since you are searching the main window, perhaps set the restriction of
the FindGraphic() function to S_RESTRICTED? I am not sure if this would
matter and it shouldn't but sometimes a combination of things makes JAWS
behave.

Another thing to consider, does it work or fail depending on what cursor is
active when you launch the script? If the PCCursor does have working focus,
use the function PCCursor() in your script to ensure that cursor is active,
in case you've left the JAWS cursor on before calling the script.

-----Original Message-----
From: jawsscripts-bounce@xxxxxxxxxxxxx
[mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Hicks Steven
(CORNWALL IT SERVICES)
Sent: Wednesday, May 22, 2013 2:25 AM
To: jawsscripts@xxxxxxxxxxxxx
Subject: [jawsscripts] Re: Scripting A Labeled Graphic

Hi Jim

My script is below:


var
    handle hwnd
Let hwnd = GetAppMainWindow (GetFocus()) if (FindGraphic (hwnd, "Next
Record", S_TOP, S_UNRESTRICTED)) THEN
    SayString ("it worked")
LeftMousebutton()
else
    SayString ("not so lucky")
endif
EndScript

I have done some further testing and when the script doesn't work, the first
co-ordinate when using alt+del to find the cursor is less than the value
when it does work so I am thinking that the cursor is outside of the window
or application where it needs to be.
I can also move the cursor in the script manually which should work fine but
I would be interested in anything that you can tweek the script with to
automate it?

I am really grateful for all your help and please excuse my ignorance, I am
not advanced in scripting to say the least.
This sounds like a simple script but it saves so much time when using the
application to navigate around my work list.
If the application had written in their own shortcut key, it would be much
easier but there is no way to customise this, I have checked.


-----Original Message-----
From: jawsscripts-bounce@xxxxxxxxxxxxx
[mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Jim Snowbarger
Sent: 22 May 2013 03:09
To: jawsscripts@xxxxxxxxxxxxx
Subject: [jawsscripts] Re: Scripting A Labeled Graphic

Depends on how you are getting that handle.  What did you settle on?
If you use GetCurrentWindow then, the handle you get depends on where the
active cursor is located when you run the script.
Most folks on this list would probably gag and the lack of elegance of it.
But, combining your scripts so your cursor first moves to a fixed set of
screen coordinates, then doing GetCurrentWindow to get the handle, then
searching that handle for the graphic,  might work just fine for you.   That
approach is less stable, prone to breakage as things move around.
Personally, I would try the
GetAppMainWindow (GetFocus() approach.
Don't forget to say S_UNRESTRICTED so the search will include all child
windows.



----- Original Message -----
From: "Hicks Steven (CORNWALL IT SERVICES)" <steven.hicks@xxxxxxx>
To: <jawsscripts@xxxxxxxxxxxxx>
Sent: Tuesday, May 21, 2013 5:10 AM
Subject: [jawsscripts] Re: Scripting A Labeled Graphic


Hi,

Thanks to everyone's help, I am almost there now.
Just something that seems quite simplet that I need to try to resolve if
anyone can help further.

Basically I have a script already that manually moves the JAWS cursor to the
labelled graphic, this just moves to the screen location.
If I use this script first then subsequent executions of my new script work
but the first time, the new script doesn't work.
Could the focus be outside of the window that I am trying to search
initially until I use the old manual script to place it there?
Does anyone know how I may be able to rectify this?
I would like to use the new script eventually to replace the old manual one
so that if the labelled graphic actually moves or you change the screen
resolution, it should still work if that makes sense?

Thanks again for all your help.


-----Original Message-----
From: jawsscripts-bounce@xxxxxxxxxxxxx
[mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Jim Snowbarger
Sent: 21 May 2013 02:22
To: jawsscripts@xxxxxxxxxxxxx
Subject: [jawsscripts] Re: Scripting A Labeled Graphic

Yes,  that is one approach.

Or, if the application main window, and all of it's chilcren is what you
want to search, you might say something like

var
    handle hwnd

Let hwnd = GetAppMainWindow (GetFocus()) if (FindGraphic (hwnd, "my Graphic
name", S_TOP, S_UNRESTRICTED)) THEN
    SayString ("it worked")
else
    SayString ("not so lucky")
endif

HTH

----- Original Message -----
From: "Hicks Steven (CORNWALL IT SERVICES)" <steven.hicks@xxxxxxx>
To: <jawsscripts@xxxxxxxxxxxxx>
Sent: Monday, May 20, 2013 2:03 AM
Subject: [jawsscripts] Re: Scripting A Labeled Graphic


So I would set up a script with a int and then call get current window and
use that in my findgraphic statement replacing the int for the window
number?


-----Original Message-----
From: jawsscripts-bounce@xxxxxxxxxxxxx
[mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Jim Snowbarger
Sent: 19 May 2013 03:47
To: jawsscripts@xxxxxxxxxxxxx
Subject: [jawsscripts] Re: Scripting A Labeled Graphic

Stephen, the first parameter to FindGraphic  in your script is set to 1,
which is almost certainly not a valid window handle.   Even if it were,
window handles typically change all the time.  So, you can never count on
them being a particular number.
You can get a handle several different ways, and which way to use depends on
what is convenient in your situation.
If you can get the jaws cursor placed somewhere in that windwo, you can call
GetCurrentWindow.



----- Original Message -----
From: "Hicks Steven (CORNWALL IT SERVICES)" <steven.hicks@xxxxxxx>
To: <jawsscripts@xxxxxxxxxxxxx>
Sent: Friday, May 17, 2013 3:49 AM
Subject: [jawsscripts] Re: Scripting A Labeled Graphic


Hi,

My script is below but for some reason, it doesn't appear to do anything,
does anyone have any suggestions please?

Script TestFindGraphic ()
FindGraphic(1,"Previous Record",S_top,S_Unrestricted) EndScript

-----Original Message-----
From: jawsscripts-bounce@xxxxxxxxxxxxx
[mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Jim Snowbarger
Sent: 17 May 2013 03:22
To: jawsscripts@xxxxxxxxxxxxx
Subject: [jawsscripts] Re: Scripting A Labeled Graphic

Try the FindGraphic function.

----- Original Message -----
From: "Hicks Steven (CORNWALL IT SERVICES)" <steven.hicks@xxxxxxx>
To: <jawsscripts@xxxxxxxxxxxxx>
Sent: Thursday, May 16, 2013 7:27 AM
Subject: [jawsscripts] Scripting A Labeled Graphic


Hi friends,
I have a button which has had to be a manually labelled graphic, I don't
think that it is a standard control.
Does anyone know if I could write a script to mouse the mouse pointer to
this graphic and check if it is there, if it is, I would like to click the
left mouse button to press it.  If it is not there, not bothered for now if
the script just does nothing.
The Button is called Next Record if that helps.
At the moment, I just manually move the JAWS cursor to the location on the
screen, this seems to work quite effictivly unless the screen resolution
changes of course but I am happy with this for now as I have tried to write
a find script to look for the labelled graphic before but coldn't get it to
work.

Any help would be much appreciated.

Steve.

****************************************************************************
****************************************

This message may contain confidential information. If you are not the
intended recipient please inform the sender that you have received the
message in error before deleting it.
Please do not disclose, copy or distribute information in this e-mail or
take any action in reliance on its contents:
to do so is strictly prohibited and may be unlawful.

Thank you for your co-operation.

NHSmail is the secure email and directory service available for all NHS
staff in England and Scotland NHSmail is approved for exchanging patient
data and other sensitive information with NHSmail and GSi recipients NHSmail
provides an email address for your career in the NHS and can be accessed
anywhere

****************************************************************************
****************************************

__________�

View the list's information and change your settings at
//www.freelists.org/list/jawsscripts



__________�

View the list's information and change your settings at
//www.freelists.org/list/jawsscripts


****************************************************************************
****************************************

This message may contain confidential information. If you are not the
intended recipient please inform the sender that you have received the
message in error before deleting it.
Please do not disclose, copy or distribute information in this e-mail or
take any action in reliance on its contents:
to do so is strictly prohibited and may be unlawful.

Thank you for your co-operation.

NHSmail is the secure email and directory service available for all NHS
staff in England and Scotland NHSmail is approved for exchanging patient
data and other sensitive information with NHSmail and GSi recipients NHSmail
provides an email address for your career in the NHS and can be accessed
anywhere

****************************************************************************
****************************************
__________�

View the list's information and change your settings at
//www.freelists.org/list/jawsscripts



__________�

View the list's information and change your settings at
//www.freelists.org/list/jawsscripts


****************************************************************************
****************************************

This message may contain confidential information. If you are not the
intended recipient please inform the sender that you have received the
message in error before deleting it.
Please do not disclose, copy or distribute information in this e-mail or
take any action in reliance on its contents:
to do so is strictly prohibited and may be unlawful.

Thank you for your co-operation.

NHSmail is the secure email and directory service available for all NHS
staff in England and Scotland NHSmail is approved for exchanging patient
data and other sensitive information with NHSmail and GSi recipients NHSmail
provides an email address for your career in the NHS and can be accessed
anywhere

****************************************************************************
****************************************
__________�

View the list's information and change your settings at
//www.freelists.org/list/jawsscripts



__________�

View the list's information and change your settings at
//www.freelists.org/list/jawsscripts


****************************************************************************
****************************************

This message may contain confidential information. If you are not the
intended recipient please inform the sender that you have received the
message in error before deleting it.
Please do not disclose, copy or distribute information in this e-mail or
take any action in reliance on its contents:
to do so is strictly prohibited and may be unlawful.

Thank you for your co-operation.

NHSmail is the secure email and directory service available for all NHS
staff in England and Scotland NHSmail is approved for exchanging patient
data and other sensitive information with NHSmail and GSi recipients NHSmail
provides an email address for your career in the NHS and can be accessed
anywhere

****************************************************************************
****************************************
__________�

View the list's information and change your settings at
//www.freelists.org/list/jawsscripts



__________�

View the list's information and change your settings at
//www.freelists.org/list/jawsscripts


****************************************************************************
****************************************

This message may contain confidential information. If you are not the
intended recipient please inform the sender that you have received the
message in error before deleting it.
Please do not disclose, copy or distribute information in this e-mail or
take any action in reliance on its contents:
to do so is strictly prohibited and may be unlawful.

Thank you for your co-operation.

NHSmail is the secure email and directory service available for all NHS
staff in England and Scotland NHSmail is approved for exchanging patient
data and other sensitive information with NHSmail and GSi recipients NHSmail
provides an email address for your career in the NHS and can be accessed
anywhere

****************************************************************************
****************************************
__________�

View the list's information and change your settings at
//www.freelists.org/list/jawsscripts


__________�

View the list's information and change your settings at 
//www.freelists.org/list/jawsscripts

Other related posts: