Hi Robert: If this script works as well as you say it does, and I'm sure it does since you've been using it for a week, you can post it yourself. Several people have posted scripts which aren't too sophisticated, including myself, then later, as I have had time, I have improved my scripts. That is the beauty of Script Central. Anybody can post a script, no matter how simple or how sophisticated, as long as they have an account. And registering an account on Script Central is a fairly straight-forward process. Kevin Huber
On 12/5/09, Robert Englebretson <[email protected]> wrote: > Dear All, > > I'm a newbie to Window-Eyes--considering making the switch since both of my > braille displays (a HandyTech Braille Wave, and a GWMicro SyncBraille 20) > have been 'orphaned' by the company who makes the screen reader I've been > using in one form or another for the past two decades. One of the things I > will miss from the old screen reader is the AutoAdvance feature, which > allows users to automatically read through text using a braille display > without having to press the scroll key thousands of times a day. For those > of us who use a VoiceSense and SyncBraille, this is a feature built in to > VoiceSense, but it doesn't seem to have made its way into Window-Eyes yet. > So, I decided to take a day last weekend and write a script to do this. It > may be a bit of a kludge, but it works perfectly for what I need it to > do--and it was great fun to dig into Window-Eyes scripting and make > something useful that works. I'm not really interested in developing it any > further, so I thought I'd pass it along to those of you who have more > script-writing experience and more time than I do. Hopefully someone on > this list will be interested in developing it further,and packaging it up to > post on Script-Central. I unfortunately don't have the time. but I'm happy > with it, it's worked fine for the last week without crashing or causing any > problems, and it does exactly what I need. > > I'll include the script, below, and then afterwards I'll include a few notes > and comments about ways I think it could be improved. I've used comment > lines fairly liberally to document how it works and what each block of code > does, so it should be pretty transparent. Basically, autoscroll initiates > with ctrl-shift-q on the keyboard, and is terminated by the ESC key. > Spacebar speeds up the scrolling in tenth-of-a-second increments, and > backspace > slows it down correspondingly. Note that most people will want to have > their end-of-line notification dings turned off in the WE Braille menu; > also, if quick messages are enabled, they need to be dismissed with a > routing button (this includes the announcements of scroll-time changes > spoken by the script, too). This works very "jerkily" in Word (for reasons > I'll > comment on at the end of this message), but works great in reading web > pages, e-mail messages, and in wordpad where I've used it to read a book > from Bookshare. Here's the script: (hopefully the mail client won't > introduce spurious line-breaks). > > ' Begin Braille Auto-Scroll Script > ' Alpha version written by Robert Englebretson > ' Please feel free to modify, improve, and redistribute > ' > ' Scrolls the braille display at a regular time interval > ' Initiated by Control-Shift-q > ' Terminated by pressing the escape key > ' Defaults to a rate of scrolling once every 2.2 seconds (good for a 40-cell > display) > ' Spacebar speeds up the scrolling by increments of one-tenth of a second > ' Backspace slows down the scrolling by increments of one-tenth of a second > ' New scroll-rate is maintained for the rest of the WE session or until > script is reloaded > ' Other keypresses allowed through as normal (b/c arrows, navigation keys, > and browse-mode keys are still useful) > ' > ' define variables > Dim BrailleAutoScrollHotkey > Dim OnStopKey > Dim ScrollDelay > ' > ' Setup control-shift-q to start scrolling > Set BrailleAutoScrollHotkey = Keyboard.RegisterHotkey("Control-Shift-q", > "BrailleAutoScroll") > ' > ' Sets default scroll delay value in MS (adequate for a 40-cell display) > ScrollDelay = 2200 > ' > ' Define the autoscroll subroutine > Sub BrailleAutoScroll() > ' Clears the escape-key press from previous session > OnStopKey = False > ' Connects to the keyboard keypress and key-release events > Press = ConnectEvent(Keyboard, "OnKeyDown", "Keypress") > Rel = ConnectEvent(Keyboard, "OnKeyUp", "KeyRel") > ' Set up the auto-scroll loop > Do while OnStopKey = false > Sleep ScrollDelay > ExecuteBrailleHotkey bhkScrollBrailleRight > Loop > ' Disconnects all events after loop is terminated with esc > Disconnect Press > Disconnect Rel > Speak "AutoScroll Stopped." > End Sub > ' > ' Set up function for disposition of KeyDown events during scrolling > Function KeyPress(VKCode, Modifiers) > ' Terminates the autoscroll loop if esc-key is pressed > If VKCode = 27 then > OnStopKey = true > Keypress = KDDiscard > Exit function > End if > ' Increases scroll speed by 0.1 seconds if spacebar is pressed > If VKCode = 32 then > ScrollDelay = ScrollDelay-100 > Keypress = KDDiscard > Speak ScrollDelay/1000 & " seconds." > Exit function > End if > ' Decreases scroll speed by 0.1 seconds if backspace key is pressed > If VKCode = 8 then > ScrollDelay = ScrollDelay+100 > Keypress = KDDiscard > Speak ScrollDelay/1000 & " seconds." > Exit function > End if > End function > ' > ' Disposition of corresponding KeyUp events > Function KeyRel(VKCode, Modifiers) > If VKCode = 27 then > KeyRel = KDDiscard > Exit function > End if > If VKCode = 32 then > KeyRel = KDDiscard > Exit function > End if > If VKCode = 8 then > KeyRel = KDDiscard > Exit function > End if > End function > ' > ' End Braille Auto-Scroll Script > > Here are a few comments and suggestions for anyone who might want to work > on this further: > > (1) This doesn't work well in Microsoft Word 2007, at all. But then again I > don't find that Window-Eyes braille works well in Word either. The problem > is at the ends of lines,there is a significant lag-time between when the > advance button is pressed and when the display actually scrolls. I don't > know why this is,or if it's unique to my system--I'd appreciate feedback > from other users on this. In any case, as a result of the lag in Word when > reaching line-endings, the autoscroll script doesn't scroll at a regular > interval at those points. It acts a bit like an arrhythmic heartbeat... > > (2) If I were to develop this script further, it would be nice if the > routing buttons on the display would stop the script, *and* route the cursor > to the correct cell. > > (3) The script should be made to stop once the cursor stops moving (i.e. > when the end of a file is reached.) Now it just sits and dings until we > press escape. > > (4) It would be nice to be able to define items in the Braille Hotkey menu > to do all of the script functions, instead of having to be tied to the > keyboard. > > (5) When the autoscroll is fast (for example with my SyncBraille 20 I set > the sleep time to 1.1 seconds), the announcements of time-change are not > spoken (e.g. when space or backspace is pressed for the script). I suspect > the problem is that these are being interrupted by some sort of program > event--and so it works well when scrolling is slower than about 2 seconds, > but not when it is faster. I haven't been able to determine what is > interrupting speech, or how to force the message to speak regardless. > > (6) Now this is a real pie-in-the-sky wish--but it would be really nice if > there were a way to determine exactly how much text is being sent to the > display on each chunk, and for the scrolltime to automatically adjust itself > accordingly. What I mean is: this script works great when the whole > display is full. 2.2 seconds is exactly the right amount of time (for me) to > thoroughly read 40 cells. But if only,say, 10 cells of the display have text > on them, then I have to wait almost 1.5 seconds for the display to scroll > itself--or I have to hit the advance button manually. It would be nice, for > example, if the script could determine that only 10 cells are showing, and > thus scroll that particular display-full after only one-fourth the usual > time delay. > > (7) This probably should be set not to work if there's no braille display > connected. > > Well,have fun! I find this quite useful, and I suspect others will too--but > I don't have the time or expertise to turn this into something I would feel > good about packaging and making publicly available. I'd definitely be > interested in receiving any updated/improved versions that any of you come > up with though. > > Best, > --Robert Englebretson > > ****************************************************************** > Dr. Robert Englebretson > Dept. of Linguistics, MS23 > Rice University > 6100 Main St. > Houston, TX 77005-1892 > Phone: 713 348-4776 > E-mail: [email protected] > http://www.ruf.rice.edu/~reng >
