Sorry Andre, I wasn't paying attention to what you did. I see that Jamal's code contains two different scripts, one to raise the volume, one to lower it. It would be possible to combine these into one script with a lot of extra code to decide which hotkey was pressed to call the combined script. But the simpler way would be to assign a separate hotkey to each script, using the method I outlined twice. The dialog which appears when you press control + d is related to the script you are currently editing. hth Martin ----- Original Message ----- From: "Andre Williams" <andre.williams.1965@xxxxxxxxx> To: <jawsscripts@xxxxxxxxxxxxx> Sent: Monday, November 08, 2010 4:50 PM Subject: [jawsscripts] Re: Changing the synth volume > Martin. Just took another shot at this and I discovered that if I focused > on > the part of this file which stated script, I was then able to attach a > hotkey to this script. I was also able to find this new script in the > keyboard manager. The problem is that when I use my 2 hotkeys I hear the > following: > Volume louder 44% > Volume softer 39%. > In actuality, nothing happens, the volume remains the same. Any ideas? > Andre > ----- Original Message ----- > From: "Martin Slack" <m.g.slack@xxxxxxxxxxxx> > To: <jawsscripts@xxxxxxxxxxxxx> > Sent: Monday, November 08, 2010 4:13 AM > Subject: [jawsscripts] Re: Changing the synth volume > > > If you open the script manager and go to the script you just created in > default.jss, then press control+d, you will get the documentation dialog, > the last input box of which allows you to assign a hotkey by pressing the > desired keys. Then tab to the ok button, press it and then recompile. > The > hotkey should then be there when you look in the default section in the > keyboard manager. > > hth > > Martin > > > ----- Original Message ----- > From: "Gordon Luke" <Gordon.Luke@xxxxxxxxxxxxxxxx> > To: <jawsscripts@xxxxxxxxxxxxx> > Sent: Monday, November 08, 2010 11:48 AM > Subject: [jawsscripts] Re: Changing the synth volume > > >> Hi >> >> I just went into my Default.JKM using Notepad and added a couple of lines >> to the common keys section e.g. >> >> [Common Keys] >> Control+Windows+F11=VoiceSofter >> Control+Windows+F12=VoiceLouder >> >> Hope this helps. >> >> Gordon Luke >> Capita IT (CAIM) >> >> >> >> "Andre Williams" >> <andre.williams.1 >> 965@xxxxxxxxx> To >> Sent by: <jawsscripts@xxxxxxxxxxxxx> >> jawsscripts-bounc cc >> e@xxxxxxxxxxxxx >> Subject >> [jawsscripts] Re: Changing the >> synth volume >> >> 08/11/2010 10:32 >> >> Please respond to >> jawsscripts@freel >> ists.org >> >> >> >> >> >> >> Gordon. Hopefully you or someone else can walk me through the process of >> attaching a hotkey to the script below. >> I have taken the script text below and copied and pasted into my jaws 11 >> default.jss file. >> I compiled and all went well. >> I launched jaws 11 and went into the keyboard manager to assign a hotkey >> but >> I couldn't find the script: VoiceLouder(). >> What's my next step to test this script? >> T-Y. >> Andre >> ----- Original Message ----- >> From: "Gordon Luke" <Gordon.Luke@xxxxxxxxxxxxxxxx> >> To: <jawsscripts@xxxxxxxxxxxxx> >> Sent: Monday, November 08, 2010 2:05 AM >> Subject: [jawsscripts] Re: Changing the synth volume >> >> >> Found this in my list of useful e-mails from the past. Hoped it might >> help >> with the current desire though I know it's not exactly what you want. >> >> Gordon Luke >> Capita IT (CAIM) >> >> >> >> Jamal Mazrui >> <empower@xxxxxxxx >> t> To >> Sent by: JAWSScripts@xxxxxxxxxxxxx >> jawsscripts-bounc cc >> e@xxxxxxxxxxxxx >> Subject >> [jawsscripts] Re: Changing the >> synth volume >> >> 17/08/2010 15:53 >> >> Please respond to >> jawsscripts@freel >> ists.org >> >> >> >> >> >> >> Below is code from the Homer script library, >> http://EmpowermentZone.com/kitsetup.zip >> >> There are scripts to change speech volume and rate, up or down. >> >> Hope this helps, >> Jamal >> >> Void Function VoiceSaveSetting(String sSetting, Int iLevel) >> ;Save an Eloquence voice setting >> Var >> Int iLoop, >> String sJcf, String sVoice, String sVoiceList >> >> Let sJcf = GetActiveConfiguration() + ".jcf" >> Let sVoiceList = >> "Global|Error|Keyboard|Screen|PCCursor|JAWSCursor|Message" >> Let iLoop = 1 >> While iLoop >> Let sVoice = StringSegment(sVoiceList, "|", iLoop) >> If StringIsBlank(sVoice) Then >> Let iLoop = 0 >> Else >> Let sVoice = "eloq-" + sVoice + "Context" >> IniWriteInteger(sVoice, sSetting, iLevel, sJcf) >> Let iLoop = iLoop + 1 >> EndIf >> EndWhile >> EndFunction >> >> Script VoiceLouder() >> ;make voice 5% louder >> Var >> Int iLevel, Int iMax, Int iMin, >> String sSetting >> >> SayString("Volume louder") >> Let sSetting = "Volume" >> Let iLevel =GetVoiceVolume(VCTX_GLOBAL , True) >> GetVoiceVolumeRange(iMin, iMax) >> Let iLevel =GetSystemVolume() >> GetSystemVolumeRange(iMin, iMax) >> If iLevel ==iMax Then >> SayString("Top") >> Else >> Let iLevel =iLevel +(5 *(iMax -iMin) /100) >> Let iLevel =Min(iLevel, iMax) >> SetVoiceVolume(VCTX_GLOBAL , iLevel) >> SetSystemVolume(iLevel) >> VoiceSaveSetting(sSetting, iLevel) >> SayString(IntToString(100 *(iLevel -iMin)/(iMax -iMin)) +" percent") >> EndIf >> EndScript >> >> Script VoiceSofter() >> ;Make voice 5% softer >> Var >> Int iLevel, Int iMax, Int iMin, >> String sSetting >> >> SayString("Volume softer") >> Let sSetting = "Volume" >> Let iLevel =GetVoiceVolume(VCTX_GLOBAL , True) >> GetVoiceVolumeRange(iMin, iMax) >> Let iLevel =GetSystemVolume() >> GetSystemVolumeRange(iMin, iMax) >> If iLevel ==iMin Then >> SayString("Bottom") >> Else >> Let iLevel =iLevel -(5 * (iMax -iMin) /100) >> Let iLevel =max(iLevel, iMin) >> SetVoiceVolume(VCTX_GLOBAL , iLevel) >> SetSystemVolume(iLevel) >> VoiceSaveSetting(sSetting, iLevel) >> SayString(IntToString(100 *(iLevel -iMin)/(iMax -iMin)) +" percent") >> EndIf >> EndScript >> >> Script VoiceFaster () >> ;Make voice 5% faster >> Var >> Int iLevel, Int iMax, Int iMin, >> String sSetting >> >> SayString("Speed faster") >> Let sSetting = "Speed" >> Let iLevel =GetVoiceRate(VCTX_GLOBAL , True) >> GetSynthRateRange(iMin, iMax) >> If iLevel == iMax Then >> SayString("Top") >> Else >> Let iLevel = iLevel +(5 *(iMax -iMin) /100) >> Let iLevel =Min(iLevel, iMax) >> SetVoiceRate(VCTX_GLOBAL , iLevel) >> ;GetVoiceRate(VCTX_GLOBAL, True) >> VoiceSaveSetting(sSetting, iLevel) >> SayString(IntToString(100 *(iLevel -iMin)/(iMax -iMin)) +" percent") >> EndIf >> EndScript >> >> Script VoiceSlower () >> ;Make voice 5% slower >> Var >> Int iLevel, Int iMax, Int iMin, >> String sSetting >> >> SayString("Speed slower") >> Let sSetting = "Speed" >> Let iLevel =GetVoiceRate(VCTX_GLOBAL , True) >> GetSynthRateRange(iMin, iMax) >> If iLevel == iMin Then >> SayString("Bottom") >> Else >> Let iLevel =iLevel -(5 * (iMax -iMin) /100) >> Let iLevel =max(iLevel, iMin) >> SetVoiceRate(VCTX_GLOBAL , iLevel) >> ;GetVoiceRate(VCTX_GLOBAL, True) >> VoiceSaveSetting(sSetting, iLevel) >> SayString(IntToString(100 *(iLevel -iMin)/(iMax -iMin)) +" percent") >> EndIf >> EndScript >> >> >> -----Original Message----- >> From: jawsscripts-bounce@xxxxxxxxxxxxx >> [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Patrik Johansson >> Sent: Tuesday, August 17, 2010 5:45 AM >> To: jawsscripts@xxxxxxxxxxxxx >> Subject: [jawsscripts] Changing the synth volume >> >> Hi! >> >> Nobody having tips for this? >> What I want to do is a script that adjusts the volume of the speech and >> makes the change global to all applications. >> >> The line: >> SetVoiceVolume(vctx_global,50) >> Changes the volume to 50, but when switching to another application the >> volume goes back to what it was before. >> How do I avoid this and make the change permanent and global to all >> applications? >> >> Best regards, >> Patrik Johansson >> Polar Print, Sweden >> -----Ursprungligt meddelande----- >> Frn: jawsscripts-bounce@xxxxxxxxxxxxx >> [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] Fr jaws tech >> Skickat: den 12 augusti 2010 01:35 >> Till: jawsscripts@xxxxxxxxxxxxx >> mne: [jawsscripts] Re: Finding DOM element at the virtual cursor >> >> O.K. guys. Here is what I came up with. It works for what I wanted and >> that was a quick way to jump into the DOM for wherever the virtual cursor >> is located. It was a little tricky going between the output from the >> JAWS >> GetTagIndex() function (only returns visible elements) and the collection >> returned in the DOM (includes both visible and hidden elements) but it >> was >> only a couple lines of code to deal with that. >> Thanks for all your input. >> >> >> >> Object Function GetCurrentElement () >> >> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> >> >> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> ;;; This function returns an object pointer to the element at the virtual >> cursor's current position ;;;; >> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> >> >> ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; >> >> var >> string tagname, >> int jawstagindex, >> object oIE, >> object oElement, >> object oTags, >> int i, >> int iIndex >> >> PCCursor() >> If Not IsVirtualPCCursor () then >> TurnOffFormsMode() >> endif >> let oIE=IEGetCurrentDocument () ;; document object let >> tagname=StringSegment(GetElementDescription (1, TRUE),"\n",1) let >> oTags=oIE.body.GetElementsByTagName(tagname) ;;collection of elements >> with >> common tagname (includes hidden elements) let jawstagindex=GetTagIndex >> (tagname) ;; index of current element within collection of visible >> elements of same tag let iIndex=0 >> >> ;;;;;; Loop through collection of all elements (including hidden) to find >> the one that corresponds to the index ;;;;;; returned by GetTagIndex() >> function (only visible elements). Also corrects for fact that DOM >> collection is ;;;;;; zero-based >> >> For i=0 to oTags.length-1 >> If stringcompare(oTags(i).type,"hidden") then ;; a visible element >> let iIndex=iIndex+1 >> endif >> If iIndex==jawstagindex then >> oElement=oTags(i) >> endif >> EndFor >> Return oElement >> >> EndFunction >> >> >> On Wed, Aug 11, 2010 at 12:44 PM, Homme, James >> <james.homme@xxxxxxxxxxxx>wrote: >> >>> Hi Travis, >>> You are right about the line number thing. It reflects the number of >>> lines in the virtual buffer. It has nothing to do with the document >>> structure, unless the document forces the virtual buffer to display a >> new line. >>> >>> Jim >>> >>> Jim Homme, >>> Usability Services, >>> Phone: 412-544-1810. Skype: jim.homme >>> Internal recipients, Read my accessibility blog. Discuss >>> accessibility here. Accessibility Wiki: Breaking news and >>> accessibility advice >>> >>> -----Original Message----- >>> From: jawsscripts-bounce@xxxxxxxxxxxxx [mailto: >>> jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Travis Roth >>> Sent: Wednesday, August 11, 2010 9:08 AM >>> To: jawsscripts@xxxxxxxxxxxxx >>> Subject: [jawsscripts] Re: Finding DOM element at the virtual cursor >>> >>> If the GetTag functions return an index which represents the number of >>> the tag as it occurs in the document, perhaps you can loop through >>> until you find the element of that number in the document? >>> I don't know if that's how the index works... But it seems a better >>> chance than the column and row count which I think is just a JAWS >>> thing. I >> suspect >>> if you use the verbosity settings to change the line length of the >>> virtual buffr you will find those numbers change which would indicate >>> its just a JAWS stat. >>> >>> So that'd leave hoping a tag index works. Or doing some serious >>> hacking such as with GreaseMonkey scripts in Firefox to add an ID to >>> every element... >>> >>> >>> -----Original Message----- >>> From: jawsscripts-bounce@xxxxxxxxxxxxx >>> [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of jaws tech >>> Sent: Tuesday, August 10, 2010 10:48 PM >>> To: jawsscripts@xxxxxxxxxxxxx >>> Subject: [jawsscripts] Re: Finding DOM element at the virtual cursor >>> >>> I need a generic way to do this because the element that I am on may >>> not have unique id or name information. In fact the only thing that >>> may come up for the elements I'm after are colspan=1 and one other one >>> that I don't remember. But those are not unique values. >>> The GetTag functions only return an index not an object reference to >>> an element. I need to get an element as an object variable so I can >>> then >> work >>> within DOM functions. Something like: >>> >>> oElement=insert code that I'm looking for >>> saystring(oElement.innertext) (or some other DOM method/property) >>> >>> Like I said I prefer working in the DOM. It is much more >> powerful/flexible >>> than working with the JAWS functions. >>> >>> I was originally thinking of using the virtual cursor column position >>> if that were in fact the sourceindex and then use code such as: >>> >>> iCol=GetCursorcol() >>> oIE=IEGetCurrentDocument() >>> oElement=oIE.all(iCol) >>> >>> But this wasn't working for some reason. In fact, I don't even think >>> I >> was >>> succeeding in getting the "all" collection. And as I alluded to in my >>> original post, I don't know if the virtual cursor column represents >>> the sourceindex of the document or not. >>> >>> Any other ideas?? >>> >>> >>> >>> On Tue, Aug 10, 2010 at 9:53 PM, Chad Foster <chad.foster@xxxxxxxxxx> >>> wrote: >>> >>> > Check out the GetTag functions. They can help you locate tags and >>> > corresponding indices. >>> > >>> > On 8/10/10, Travis Roth <travis@xxxxxxxxxxxxxx> wrote: >>> > > I've not tried it, but I'd suggest looking at the >>> > > GetElementDescription() function and seeing if you can parse out >>> > > the >> ID >>> or name attribute. >>> > > If an element doesn't have either of those its going to be >>> > > difficult to >>> > find >>> > > in the DOM with JavaScript... >>> > > >>> > > >>> > > -----Original Message----- >>> > > From: jawsscripts-bounce@xxxxxxxxxxxxx >>> > > [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of jaws tech >>> > > Sent: Tuesday, August 10, 2010 5:45 PM >>> > > To: jawsscripts@xxxxxxxxxxxxx >>> > > Subject: [jawsscripts] Finding DOM element at the virtual cursor >>> > > >>> > > Hi All. >>> > > I would like to find a reliable way to find the DOM element >>> > > corresponding >>> > to >>> > > the current virtual cursor position. I like to jump into the DOM >>> > > when >>> > doing >>> > > IE scripting instead of the JAWS functions and I need a way to >>> > > grab the current element. As most of you already know the >>> > > GetFocusedElement() functions just grab wherever the PC cursor is >>> > > and have nothing to do with JAWS' >>> > > virtual buffer. Also, can someone explain the significance of the >>> > > row >>> > and >>> > > column output of the Virtual cursor's position. The column >>> > > position >>> > seems >>> > > to correspond to the source index but I'm not sure what the row >>> > > might represent?? Understanding this might shed some light on >>> > > getting into the DOM. >>> > > >>> > > Thanks >>> > > >>> > > >>> > > __________ >>> > > >>> > > 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 >>> > > >>> > > >>> > >>> > >>> > -- >>> > Chad Foster >>> > Access Technology Solutions >>> > Leveling The Playing Field Through Technology >> http://www.GO-ATS.net<http://www.go-ats.net/> >>> > __________ >>> > >>> > 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 >>> >>> >>> __________ >>> O >>> View the list's information and change your settings at >>> //www.freelists.org/list/jawsscripts >>> >>> >>> This e-mail and any attachments to it are confidential and are >>> intended solely for use of the individual or entity to whom they are >>> addressed. If you have received this e-mail in error, please notify >>> the sender >> immediately >>> and then delete it. If you are not the intended recipient, you must >>> not keep, use, disclose, copy or distribute this e-mail without the >>> author's prior permission. The views expressed in this e-mail message >>> do not necessarily represent the views of Highmark Inc., its >>> subsidiaries, or affiliates. >>> __________ >>> >>> 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 >> >> >> __________ >> >> 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 email is confidential and should not be used by anyone who is not >> the original intended recipient. Prudential cannot accept liability >> for statements made which are clearly the sender's own and not made >> on behalf of the Prudential. In addition, no statement should be >> construed as giving investment advice within or outside the United >> Kingdom >> >> Prudential plc, incorporated and registered in England and Wales. >> Registered Office at Laurence Pountney Hill, London, EC4R 0HH. >> Registered number 1397169. Prudential plc is a holding company, >> subsidiaries of which are authorised and regulated by the Financial >> Services Authority (FSA) >> >> 'Prudential' is a trading name of The Prudential Assurance Company >> Limited, which is incorporated and registered in England and Wales. >> Registered Office at Laurence Pountney Hill, London, EC4R 0HH. >> Registered number 15454. Authorised and regulated by the Financial >> Services Authority. 'Prudential' is also used by other companies within >> the Prudential Group, which between them provide a range of financial >> products including life assurance, pensions, savings and investment >> products >> >> 'Prudential' is also a trading name of Prudential Distribution Limited, >> which is incorporated and registered in Scotland. Registered Office at >> Craigforth, Stirling, FK9 4UE. Registered number SC212640. Authorised >> and regulated by the Financial Services Authority. >> >> A list of other Prudential companies together with their registered >> statutory details can be found in 'About Prudential' on </font><a >> href="http://www.prudential.co.uk/prudential-plc/aboutpru/groupcompanies/"; >> style="color: blue; text-decoration: underline; text-underline: >> single"><span style="font-size: >> 9pt">http://www.prudential.co.uk</span></a></span></p> >> >> An email reply to this address may be subject to interception or >> monitoring for operational reasons or for lawful business practices. >> >> __________� >> >> 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 email is confidential and should not be used by anyone who is not >> the original intended recipient. Prudential cannot accept liability >> for statements made which are clearly the sender's own and not made >> on behalf of the Prudential. In addition, no statement should be >> construed as giving investment advice within or outside the United >> Kingdom >> >> Prudential plc, incorporated and registered in England and Wales. >> Registered Office at Laurence Pountney Hill, London, EC4R 0HH. >> Registered number 1397169. Prudential plc is a holding company, >> subsidiaries of which are authorised and regulated by the Financial >> Services Authority (FSA) >> >> 'Prudential' is a trading name of The Prudential Assurance Company >> Limited, which is incorporated and registered in England and Wales. >> Registered Office at Laurence Pountney Hill, London, EC4R 0HH. >> Registered number 15454. Authorised and regulated by the Financial >> Services Authority. 'Prudential' is also used by other companies within >> the Prudential Group, which between them provide a range of financial >> products including life assurance, pensions, savings and investment >> products >> >> 'Prudential' is also a trading name of Prudential Distribution Limited, >> which is incorporated and registered in Scotland. Registered Office at >> Craigforth, Stirling, FK9 4UE. Registered number SC212640. Authorised >> and regulated by the Financial Services Authority. >> >> A list of other Prudential companies together with their registered >> statutory details can be found in 'About Prudential' on </font><a >> href="http://www.prudential.co.uk/prudential-plc/aboutpru/groupcompanies/"; >> style="color: blue; text-decoration: underline; text-underline: >> single"><span style="font-size: >> 9pt">http://www.prudential.co.uk</span></a></span></p> >> >> An email reply to this address may be subject to interception or >> monitoring for operational reasons or for lawful business practices. >> >> __________� >> >> 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 > __________� View the list's information and change your settings at //www.freelists.org/list/jawsscripts