Hi Chip, Thanks for sharing your insights on reclassing. I doubt that I will find any more than you have on the subject. If I do, I definitely will share.
Ken From: Chip Orange [mailto:[email protected]] Sent: Sunday, October 09, 2011 2:14 PM To: [email protected] Subject: RE: Three Issues/Questions for Scripting Window-Eyes with Microsoft Access 2010 Database Program Hi Ken, I haven't found much of anything to study on reclassing, please let me know if you do! What I was trying to say is that here's my understanding of what's going on: If you come across a control which WE describes as a custom control, this means it's likely to not know how to read it or what to do with it. I believe it gets it's info on the type of the control from the window.type property of the control (each control usually has it's own window object, which is not at all the same as the main application window (usually)). So, if you find out this custom control is really an editbox say, you can interactively indicate this to WE, and it will make note of this in a special file with a .we extension; every time it finds this control, it will treat it as an editbox from then on because of this entry in the .we file. You can do the same thing in your app by finding the correct window object for the control, and setting the type property to be the constant for the editbox type. Since you haven't created any .we file for window-eyes to use, and since GW hasn't told us how to create such .we files (officially), it's best if you make this assignment to the control's window object's type property, in your app, each time your app runs, rather than trying to create a .we file for the control which shows it being reclassed. when you do this, you are causing WE to then treat this control as an editbox; if you find out later this isn't the best thing to do, you don't have to undo any .we file you may have created on your pc (or the pc of others), you can simply stop making this assignment. As far as I know, this is the best way to handle reclassing controls in an app. We'll see if it draws a correction from anyone. hth, Chip ________________________________ From: Scott, Ken [mailto:[email protected]] Sent: Friday, October 07, 2011 3:29 PM To: '[email protected]' Subject: RE: Three Issues/Questions for Scripting Window-Eyes with Microsoft Access 2010 Database Program Chip, Thanks for the feedback. I think I am missing something about reclasses so I will go back and study some more. Ken From: Chip Orange [mailto:[email protected]] Sent: Thursday, October 06, 2011 7:07 PM To: [email protected] Subject: RE: Three Issues/Questions for Scripting Window-Eyes with Microsoft Access 2010 Database Program Hi Scott, reclassing a control when you do it manually using Window-Eyes keyboard commands allows it to be permanently reclassed. When you do this in a script, it's not permanent, so your script has to do this each time it runs. All you have to do is to set the window type of the control's window object (each control has it's own window) to be whatever type you think it really is. there's a list of predefined constants for each of the window types (one for each control type). so, you'd just find the correct window of the control, and then you'd have a command like: myWindow.type = wtEditbox Which sets it to be an edit box. hth, Chip ________________________________ From: Scott, Ken [mailto:[email protected]] Sent: Wednesday, October 05, 2011 1:10 PM To: '[email protected]' Subject: Three Issues/Questions for Scripting Window-Eyes with Microsoft Access 2010 Database Program Hi gw-scripting list members, I am attempting to improve the usability of the Microsoft Access 2010 database program with Window-Eyes. I am not a programmer of any kind let alone an object oriented one. I have done some analysis of the Access 2010 and Window-Eyes combination. I also listened to all of the podcasts and read all of the documentation that I thought applied to what I am trying to do. I am left with three issues/questions. One thing that I am trying to do is to automatically maximized the Access 2010 windows. The problem is that I am getting two object.classnames for what appear to be the same object depending on what analytical tool or approach that I use. If I use, Gw Micro's Window Manager to check on classnames for objects, I get one result. If I use the Object Browser in Chip Orange's Microsoft Word based development environment, I get another Classname. For example, in Window Manager there is a OTable classname, whereas, in the Object Browser, there is a table classname. Can anyone suggest which version of the object classname that I should try first when scripting to maximize the windows? The second problem that I am having is determining the syntax to load set files based on off screen events. I plan to use the presence of Access window objects plus view button status to load set files. My first issue. What is the property/method to load a specified set file? I did write GW Micro Support asking about this situation. I was told about the window.loadset object. Unfortunately when I check the Window-Eyes developer reference, this object appears to tell if a set file is loaded and not to load a set file. Second, what is the syntax for using an accessible string as part of an operation. I can find a long string that gives the name of a view button and its pressed verses unpressed status in my analysis. I do not know how to write this into an operation. My tentative idea for a syntax is something like: If window.classname = OTable and Datasheet view status = pressed then loadset.TableDatasheetView. If anyone can suggest how precisely the above hypothetical operation should be written I will be forever in your debt. The third area of trouble is in reclassing a custom control. If I understood the Window-Eyes developer reference correctly, I need to use the type object to reclass the object. I will need to first use the retrieve property to place the custom control into my script. I then need to use the set property plus the type to reclass the custom control. If the custom control is okttbx and need to be reclassed to an editbox, what would these operations look like? If I have confused you, please send me any follow up questions that you have. Regards, Ken Scott
