Hi Mario, The line in your original code which I mentioned before as being commented out is actually in the wrong place. As it stands, you will only look at the next window if the first window you find is a button. Try this: while ((hW) && not IsKeyWaiting ()) ; if (GetWindowSubTypeCode (hW) == 1) then ; let sList = sList + GetWindowName (hW) + sep endIf let hW = GetNextWindow (hW) ;this now happens whether you find a button or not endWhile ; hth Martin ----- Original Message ----- From: "Mario Brusco" <mrb620@xxxxxxxxxxx> To: <jawsscripts@xxxxxxxxxxxxx> Sent: Monday, September 27, 2010 10:06 PM Subject: [jawsscripts] Re: dlgList of buttons > hi David, which code are your comments referring to, the first or > Jackie's? > > I've added an iCount variable into the while loop as follows: > > var int iCount, > bla bla bla > while ... && iCount<100 > bla bla bla > let iCount= iCount+1 > EndWhile > > now a jawskey+control+b results as the script not being recognized > (shouldn't it be a >100?). but I like your idea too. Exactly where and how > would it be implemented without the iCount stuff?(exact code please as I > am > not a true scripter). > > I cringe when I need to force boot to get jaws back, and I'd like a sure > fire way to prevent jaws from hanging. > ----- Original Message ----- > From: "David Farough" <David.Farough@xxxxxxxxxxxxx> > To: <jawsscripts@xxxxxxxxxxxxx> > Sent: Monday, September 27, 2010 2:02 PM > Subject: [jawsscripts] Re: dlgList of buttons > > > hi Mario; > You could always add the Not IsKeyWaiting () condition to your while > loop. This will terminate the loop as soon as you hit a key. > > In the final FindWindow, you should only specify one value in the > arguments, You can specify "" (null string ) . for the class and the > name for the window you are looking for. > > > 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 >>> Mario Brusco <mrb620@xxxxxxxxxxx> > 01:00 PM Monday, September 27, 2010 >>> > Nope, still hangs. hmm, I'm wondering if there's a way to avoid the > hanging > without interfering the intended function of the script, sort of a > safety > out? I'm wary of forcing to turn off the PC (by holding the power > button > down until the PC shuts down (cold boot)) in order to get speech back; > I've > had to do this too many times. > > ----- Original Message ----- > From: "Jackie McBride" <abletec@xxxxxxxxx> > To: <jawsscripts@xxxxxxxxxxxxx> > Sent: Monday, September 27, 2010 12:11 PM > Subject: [jawsscripts] Re: dlgList of buttons > > > Mario, let's revise the while loop, as follows: > > var > String sList, ;will contain list of buttons > String sItem, ;will contain the desired button name > int iIndex, ;contains number of button selected > handle hW ;contains window handles > let hW= FindWindow (GetAppMainWindow (GetCurrentWindow ()), "Button", > "") > ;looks for a type (Button), starting from main window > while (hW) ;while valid window handle found > if GetWindowSubTypeCode (hW)== 1 then ;it's a button,gets name of > button and > adds it to the list, as well as the \007 item separator > let sList= sList+GetWindowName (hW)+sep > > endIf > ;let hW= GetNextWindow (hW) ;go to next window > endWhile ;displays the list of buttons from which to pick, iIndex > returns > the button number > let iIndex= dlgSelectItemInList (sList, "calculator buttons", 1) ;gets > the > name of the button selected > let sItem= stringSegment (sList, sep, iIndex) > let hW= FindWindow (GetAppMainWindow (GetCurrentWindow ()), > "Button", sItem) > if hW then ;valid window handle > SetFocus(hw) > TypeKey("space") > else > SayMessage (OT_MESSAGE, "window not found") > endIf > > EndScript > > > On 9/27/10, Mario Brusco <mrb620@xxxxxxxxxxx> wrote: >> hi scripters, I am trying to adapt the following code to retrieve a > list >> of >> the Windows calculator buttons whether it is in standard or > scientific >> mode, >> whether the buttons are disabled or not. It seems to hang at some > point. >> can >> someone please help to get it working for me? Maybe the problem is in > the >> while loop? I dabble lightly and am not a true scripter yet, so I > need >> actual code: >> >> const >> sep = "\007" >> >> Script GetButton () >> ;control+jawskey+b >> ; gathers the buttons in a window into a list, user can use arrows to > use >> the arrow keys and enter key to select a function >> ; works in any window/dialog >> var >> String sList, ;will contain list of buttons >> String sItem, ;will contain the desired button name >> int iIndex, ;contains number of button selected >> handle hW ;contains window handles >> let hW= FindWindow (GetAppMainWindow (GetCurrentWindow ()), "Button", > "") >> ;looks for a type (Button), starting from main window >> while (hW) ;while valid window handle found >> if GetWindowSubTypeCode (hW)== 1 then ;it's a button,gets name of > button >> and >> adds it to the list, as well as the \007 item separator >> let sList= sList+GetWindowName (hW)+sep >> ;let hW= GetNextWindow (hW) ;go to next window >> endIf >> endWhile ;displays the list of buttons from which to pick, iIndex > returns >> the button number >> let iIndex= dlgSelectItemInList (sList, "calculator buttons", 1) > ;gets the >> name of the button selected >> let sItem= stringSegment (sList, sep, iIndex) >> SaveCursor () >> JAWSCursor () >> RouteJAWSToPc ();finds the button & gets its handle >> let hW= FindWindow (GetAppMainWindow (GetCurrentWindow ()), >> "ThunderRT6CommandButton", sItem) >> if hW then ;valid window handle >> if MoveToWindow (hW) then ;move to the window whose handle u just > got >> LeftMouseButton () >> Else >> SayMessage (OT_MESSAGE, "cannot move to button") >> endIf >> else >> SayMessage (OT_MESSAGE, "window not found") >> endIf >> RestoreCursor () >> EndScript >> >> __________ >> >> View the list's information and change your settings at >> //www.freelists.org/list/jawsscripts >> >> > > > -- > Change the world--1 deed at a time > Jackie McBride > Scripting Classes: http://jawsscripting.lonsdalemedia.org > homePage: www.abletec.serverheaven.net > For technophobes: www.technophoeb.com > __________ > > 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 e-mail message is intended for the named recipient(s) and may > contain information that is privileged, confidential and/or exempt from > disclosure under applicable law. Unauthorized disclosure, copying or > re-transmission is prohibited. If you are not a named recipient or not > authorized by the named recipient(s), or if you have received this > e-mail in error, then please notify the sender immediately and delete > the message and any copies. > > > Ce courriel est destiné exclusivement au destinataire mentionné en titre > et peut contenir de l'information privilégiée, confidentielle ou > soustraite à la communication aux termes des lois applicables. Toute > divulgation non autorisée, toute reproduction ou réacheminement est > interdit. Si vous n'êtes pas le destinataire de ce courriel, ou n'êtes > pas autorisé par le destinataire visé, ou encore, si vous l'avez reçu > par erreur, veuillez le mentionner immédiatement à l'expéditeur et > supprimer le courriel et les copies. > > __________? > > 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 > > __________� View the list's information and change your settings at //www.freelists.org/list/jawsscripts