Hi Michael, What's the application?. Warm regards. Martin Webster.
--- On Tue, 7/26/11, Aaron Smith <[email protected]> wrote: > From: Aaron Smith <[email protected]> > Subject: Re: Need help! > To: [email protected] > Date: Tuesday, July 26, 2011, 2:39 AM > Before you delve into scripting, does > Control-Shift-M read the selected > item? If so, you can set the up/down cursoring keys to read > highlighted > text. > > Aaron > > On 7/25/2011 3:46 PM, Mike Wigle wrote: > > Hi everyone, > > > > I'm very new to coding and have found myself needing > to make a very inaccessible application accessible in a > short period of time. I've done a fair amount of window > reclassification and that has helped in some areas. However, > I am finding myself in need of being able to do some far > more complex manipulation. For example, right now I have > several list boxes that Window-Eyes does not read properly > when arrowing down. I can read the text with the mouse > cursor but even when I route the mouse to the PC cursor it > does not route to the correct item in the list that is > highlighted. Instead, it just goes to the top. I was > wondering if anyone has suggestions on how I might approach > coding to have WE watch for the change in background color > of the individual list items and have the mouse cursor route > there and read the line. Or, if you have better suggestions. > Right now I'm in a time crunch to make this work for my > client. It just needs to talk more efficiently than it is > now. I have her doing some horrendous processes to make > these list boxes usable. Basically, I think I'm needing to > find some example code of listening for events of specific > window objects. Any thoughts or ideas would be greatly > appreciated. Thanks. > > > > Michael Wigle > > Access Technology Specialist > > Cincinnati Association for the Blind and Visually > Impaired > > 2045 Gilbert Ave. > > Cincinnati, OH 45202 > > Office: 513-487-4243 > > Web: http://www.cincyblind.org > > > > Disclaimer: The information contained in this > electronic mail message may be confidential and protected > information intended only for the use of the individual or > entity named above. As the recipient of this > information you may be prohibited by State and Federal law > from disclosing this information to any other party without > specific written authorization from the individual to whom > it pertains. If you have received this communication in > error, please notify us immediately and destroy the message > and its attachments. > > > > > > -----Original Message----- > > From: [email protected] > [mailto:[email protected]] > > Sent: Monday, July 25, 2011 12:01 AM > > To: [email protected] > > Subject: Digest list: > > > > Daily messages from mailing list : > > > > 1. draft of scripting class examples for today's class > ["Chip Orange"<[email protected]>] > 2. guest speaker for scripting class on August 7 ["Chip > Orange"<[email protected]>] > > > > Messages: > > > > ---------------------------- > > Message 1 > > ---------------------------- > > > > From: "Chip Orange"<[email protected]> > > To:<[email protected]> > > Reply-To: [email protected] > > Subject: draft of scripting class examples for today's > class > > > > ' Draft Scripting class 21 (7/24/2011) > > > > ' these examples cover the use, and creation of, > shared objects > > > > ' example 1 > > ' example showing the use of a sharedObject from the > GW toolkit which is not an object, but just a function > > > > ' This example returns a string containing the text > "edit box" > > > > dim objWindowType > > > > set objWindowType = > SharedObjects.get("com.GWMicro.GWToolkit.WindowType") > > ' above, sharedObjects is a root level object which > only has 3 methods: get, register, and revoke > > > > ' the variable objWindowType, although it looks like > we assigned it an object, actually holds only a reference to > a function > > > > msgBox "The name for window type 12 is "& > objWindowType(12) > > > > ' "get" is the default method of the sharedObjects > object, and so you can actually leave it off altogether as > in the line below set objWindowType = > SharedObjects("com.GWMicro.GWToolkit.WindowType") > > > > ' if you're using the "get" method of the > sharedObjects object, below is a much better form to use in > your app > > > > ' "get" has an optional second parameter, which is the > number of milliseconds it is to wait for the object you want > to become available; ' since use of "get" will pause > your app while waiting, it's best to specify the wait time, > so you can continue and let the user know a needed shared > object is not available > > > > set objWindowType = nothing > > set objWindowType = > SharedObjects.get("com.GWMicro.GWToolkit.WindowType", > > 10*1000) ' waits up to 10 seconds (the default is 30) > if objWindowType is nothing then > > msgBox "Could not get a needed > shared object" > > > > else > > ' here you go on to do whatever your app does knowing > it got the shared object it needs end if > > > > ' end of example 1 > > > > > > ' example 2 > > ' here's the recommended way to get a shared object, > by making use of the event which tells you when each shared > object is available. > > ' It also demonstrates use of the executeGlobal > command. > > > > > > Dim errorReportingEnabled > > errorReportingEnabled = False > > > > ' now connect to the onStateChange event of the > sharedObjects object (which is a root level property). > > ConnectEvent SharedObjects, "OnStateChange", > "HandleStateChange" > > > > ' end of main body > > > > Function HandleStateChange(objName, objState) ' event > handler for the onStateChange event of the sharedObjects > object. > > ' the first parameter is the name of the object, and > the second is true if it's available, and false if not. > > > > ' this event gets triggered for each shared > object when your app starts, as well as when new ones > come online or go offline. > > > > HandleStateChange = False > > > > Select Case objName > > ' you only list CASE options for the objects you are > interested in using ' even though you will receive a > notification for all possible objects. > > > > Case "com.GWMicro.GWToolkit.ErrorReporting" > > If objState Then > > ' object is available > > ' (here you put the commands specific to use of this > object when it is > > loaded) > > If Not errorReportingEnabled Then > > set objErrorReporting = > SharedObjects(objName, 0) ' this too returns a simple > function and not an object > > strErrCommands = > objErrorReporting(ClientInformation.ScriptVersion, > > "[email protected]", > True) ' which returns a string of VBScript commands ' the > VBScript commands for error reporting primarily make use of > the Script object's onError event > > ExecuteGlobal > strErrCommands > > ' the executeGlobal command takes a string of VBScript > commands, and treats them as if they were part of your app > from the start; it inserts them into your app > > errorReportingEnabled = > True > > End If > > else > > ' object has become unavailable (maybe it's script has > crashed) ' so maybe you do something in your script such as > undefine a hotkey which used this object, gray out some menu > choices, whatever. > > end if > > > > end select > > > > HandleStateChange = True ' indicates you have handled > this notification > > > > end function > > > > ' end of example 2 > > > > > > > > ' example 3: > > ' shows 3 different ways how to register your own > object or function as a shared object > > > > ' 1: below is how the GW toolkit handles it's > windowType shared object ' register a function in your app > as a shared object > > > SharedObjects.Register "com.GWMicro.GWToolkit.WindowType", > > GetRef("WindowType") > > > > Function WindowType(typeNum) > > > > ' ... > > end function > > > > > > ' 2: below is how the Homer library handles it's homer > shared object ' register an object which is owned/created by > the registering app ' and truly this single object is shared > by all apps. > > ' (this is ok because there are no private variables > in the class which need to be taylored to each app) > > > > SharedObjects.Register > "org.NonvisualDevelopment.Homer", New Homer > > > > Class Homer > > ' Public methods > > > > ' Miscellaneous > > Public Function Append(sText) > > ' Append a line of XML to a wescriptui definition > > > > ' If InStr(sText, "<") Or InStr(sText,">") Or > InStr(sText,"&") Or InStr(sText, ";") Or InStr(sText, > Chr(34)) Then Exit Function If InStr(sText,"&") Or > InStr(sText, ";") Or InStr(sText, Chr(34)) Then Exit > Function sDialogXml = sDialogXml& sText& > vbCrLf End Function > > > > ' ... > > > > end class > > > > > > > > > > ' 3: below is how the GW toolkit handles it's > standardHelpDialog shared object ' register an object, which > contains a method for creating a "new" object which the > calling app must use to create the object it needs ' before > it can be used. Calling the method to create the new > object gives each calling app it's own copy of the object. > > ' (note: the two objects here are not of the same > type.) > > > SharedObjects.Register > > "com.GWMicro.GWToolkit.StandardHelpDialog", New > StandardHelpDialog ' notice the second parameter above is > "new standardHelpDialog", which creates an object of type > "standardHelpDialog" which is what is registered as the > shared object, ' but there is only one of this object. > > ' when each user calls the newStandardHelpDialog > method, they'll create their own object to work with. > > > > Class standardHelpDialog > > Public Function > NewStandardHelpDialog() ' when the calling app calls this > method, a new object with it's properties and methods etc. > will get created in the thread of the calling app, not the > registering app > > > > Set NewStandardHelpDialog = > New standardHelpDialogClass > > End Function > > End Class > > > > ' below is the class the user really works with, after > creating a new object of this type in their app by calling > the .NewStandardHelpDialog method of the ' shared object. > > Class standardHelpDialogClass > > Public INIFileName > > Public INISectionName > > Public INIKeyName > > Public Hotkey > > Public HelpTitle > > Public HelpText > > Public KeyStrings > > Public ScriptName > > Public ScriptVersion > > Public UpdateUrl > > Public DefaultHotkeys > > Public FocusCloseButton > > Public UseAboutBox > > Public AboutAuthor > > Public AboutVersion > > Public AboutReleaseDate > > Public AboutCopyright > > Public AboutWebsite > > Public ShowHotkeysInHelp > > Public UseHotkeyManager > > Public ParentWindow > > > > ' ... > > > > End Class > > > > ' end of example 3 > > > > > > > > > > ' archives of these classes can be found at: > > ' https://www.gwmicro.com/App_Central/Developers/Interactive_Classes/ > > > > ---------------------------- > > Message 2 > > ---------------------------- > > > > From: "Chip Orange"<[email protected]> > > To:<[email protected]> > > Reply-To: [email protected] > > Subject: guest speaker for scripting class on August > 7 > > > > Hi all, > > > > Jeff Bishop will be the guest speaker on August 7's > scripting class (two weeks from today). He'll speak > regarding all that he did to develop the WinAmp app. > You'll be able to get a completely different point of view > for once! > > > > We meet live on Sunday evenings at 7 pm EDT using > TeamTalk. We have a TeamTalk file which specifies the > TeamTalk server, channel name, and password; if anyone > would like this file so you can join us live and ask Jeff > questions, drop me a note at the email address below: > > > > [email protected] > > > > Otherwise, you'll be able to listen to the podcast > from the GW scripting class archives at: > > > > https://www.gwmicro.com/App_Central/Developers/Interactive_Classes/ > > > > Chip > > > > > > > > > > -- > Aaron Smith > Web Development * App Development * Product Support > Specialist > GW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, > IN 46825 > 260-489-3671 * gwmicro.com > > To insure that you receive proper support, please include > all past > correspondence (where applicable), and any relevant > information > pertinent to your situation when submitting a problem > report to the GW > Micro Technical Support Team. > > >
