[jawsscripts] Re: Trouble with mod to "System Dialogs.jss"

  • From: "Jackie McBride" <abletec@xxxxxxxxx>
  • To: jawsscripts@xxxxxxxxxxxxx
  • Date: Thu, 25 Oct 2007 10:39:34 -0700

Mark:

Have u tried a FindDescendantWindow & searched on the controlID 8962
for the play/stop toggle & 1001 for the combo-edit box for your
sounds?  That's really the way 2 go on these kinds of scripts where
control ID's r unique.

If u wanna just press 1 hotkey, Just do it using a GetCurrentControlID
or something similar.  Are these things u know how to do?

On 10/25/07, David Farough <David.Farough@xxxxxxxxxxxxx> wrote:
> Hi Mark:
>
> I noticed the following problem in your script.
>
> You were not using the hwnd handle variable when you were using the
> GetNextWindow function to move to the next window from the list of
> events.  This code should look like this.
>
> Let hWND =GetFocus ()
> Let hWND=GetNextWindow (hwnd)
> Let hWND=GetNextWindow (hwnd)
> Let hWND=GetNextWindow (hwnd) ;should hopefully land us on the "Play
> Sound Button"
>
>
> Your code was repeatedly setting the handle variable to the static text
> window which follows the event list.
>
> Keep in mind that although you are using the getNextWindow  function to
> find out what the next window is in the program structure, you are not
> actually changing the window with focus.  All you are doing is assigning
> the hwnd variable the value of the next window following the currently
> focussed window.  This is why in the next assignment statements it is
> important that you use your hwnd variable as the argument in the
> GetNextWindow function calls.  This way you will actually load the next
> window handle into your hwnd variable.
>
> Here is another thing to consider.
>
> When you go into home row mode Check to see what the window name is for
> the button you are looking for.  I think you will find that the name is:
> Play and Stop Toggle.  If this is the case, you could use the findWindow
> function to return the handle of that button.  When you code this
> function call you first need to provide the handle of the window where
> the find is to start from.  This would most likely be the realwindow of
> the dialog you were focussed in.  The following function call should
> produce the desired results.
>
> let hwnd = FindWindow (GetRealWindow (GetFocus ()), "", "Play and Stop
> Toggle")
> Using this approach will allow you to move to that button no matter
> where you are focussed in the dialogue.  If hwnd is not 0, it is safe to
> assume that hwnd now contains the handle for the button.
>
> Now that you have the handle for the button, you could use the SetFocus
> or MoveToWindow functions to move to that window.
>
> Here is a description of the FindWindow Function.
>
> FindWindow(handle hStart, string sClass, string sWindowName)
>
> Category:  Window
>
> Synopsis:  finds a window with a specified class or name.
>
> Return Type:  handle
>
> Return Description:  the window handle of the found window.
>
> handle hStart
> starting window.
>
> string sClass
> class name to search for.
>
> string sWindowName
> the name of the window to find.
>
> Description:  This function starts at the specified window and searches
> all of its children to find one with the specified Class or Window Name.
> If the handle is 0 then a top level window is sought (ie equivalent to
> calling FindTopLevelWindow). Leave the name blank to find a window with
> a class but any name or leave the class blank to find a window with any
> class but a particular name
>
> David Farough
> Application Accessibility Coordinator/coordonateur de l'accessibilité
> Information Technology Services Directorate /
> Direction des services d'information technologiques
> Public Service Commission / Commission de la fonction publique
> Email / Courriel:  David.Farough@xxxxxxxxxxxxx
> Tel. / Tél:    (613) 992-2779 .
> >>> "Mark Matthews" <mark.matthews53@xxxxxxxxxxxx> 09:47 am Monday,
> October 15, 2007 >>>
> Hi folks.
>
> I'm trying to write a little script that enables the user to simply
> press a
> keystroke when in the list of events for the default Sound Scheme in
> "System
> Dialogs.jss" and play the associated sound, without having to Tab to
> the
> appropriate button, then shift tab back to the List View. Despite
> exploring
> the relationship between the various windows using the Home Row
> utility, and
> a few variations to the below code, the intended results still do not
> appeared to be yielded. The complete script follows:
>
> Script ClickPlayAndStopToggle ()
>
> Var
> Handle hWND
>
> Let hWND =GetFocus ()
> Let hWND=GetNextWindow (GetFocus ())
> Let hWND=GetNextWindow (GetFocus ())
> Let hWND=GetNextWindow (GetFocus ()) ;should hopefully land us on the
> "Play
> Sound Button"
>
> If GetWindowClass (hWND) =="Button" Then ;checking that the focused
> window
> is actually of class button
> SaveCursor ()
> JAWSCursor ()
> SaveCursor ()
> If FindString (GetFocus (), "Play Sound", S_TOP, S_UNRESTRICTED)
> Then
> LeftMouseButton ()
> EndIf
> EndIf
>
> EndScript
>
> I've got a feeling my downfall could be that button to play the
> currently
> selected event's sound. As you can probably see from the title,
> "PlayandStopToggle" is what I thought I was looking for, as when
> tabbing
> through the dialogue that's what's announced by JFW. However when
> doing
> further exploration and obtaining some sighted confirmation from a
> co-worker, the button appears to be a graphic, and possibly a tool
> tip.
> Being mindful of this I've substituted FindString with FindGraphic, but
> alas
> to no avail. Due to slowly running out of ideas, can anyone offer
> further
> input?
>
> Also whilst I appreciate there are probably more compact ways of
> writing the
> statements to reach the window in question (in this case the "Play
> Sound"
> button", I thought writing it in stages would help me de-bug any
> problems.
>
> Cheers,
>
> Mark
>
> Mark Matthews
> Cardiff, Wales, UK
> E-mail/MSN/Windows Messenger:  mark.matthews53@xxxxxxxxxxxx
> Skype:  MMatthews1981
> Mobile:  07800 561442
>
>
> __________á
> View the list's information and change your settings at
> http://www.freelists.org/list/jawsscripts
>
>


-- 
Jackie McBride
Please sign the Yahoo Accessibility petition at:
<http://www.petitiononline.com/yabvipma/petition.html>
& Check out my homepage at:
www.abletec.serverheaven.net
__________ 
View the list's information and change your settings at
http://www.freelists.org/list/jawsscripts

Other related posts: