Hi Kate: I threw Aaron's VB.net example together, fixed a missing piece of code from the C# example and it compiled and ran without errors except... The OnFocus event seemingly did not fire at all on this first go. The Shutdown Event did fire properly. I am testing the VB.net Script's Executable Assembly over the Microsoft VWD Platform while I work on a VWD Project. I will look at it some more tomorrow, run another test or 2 and see if I can find something. Otherwise I will contact Aaron to see what he thinks. This might be the same problem I was having before, not sure, but if Aaron tested his scripts then it should work if I get it right. I wonder if GW could add that PowerShell scripting language to the WEEngine like VBS and I think JavaScript without too much trouble. That way it would not be an external script but have full access to the .net Framework. That said, I just dont know how that works so cant even guess if it is a big job or even possible. Later and good hunting! Rick USA ----- Original Message ----- From: Katherine Moss To: [email protected] Sent: Friday, April 13, 2012 3:54 PM Subject: RE: WE And Microsoft Development Environments
This looks like we're making some progress, and it looks like I do have something else to shoot for besides networking-based applications (which is the main reason for me learning C#.) Bu it would be interesting for PowerShell to be introduced as another language for WE scripting support. And the funny thing is that PowerShell is a scripting language, Microsoft's preference over VBS anyway. From: Aaron Smith [mailto:[email protected]] Sent: Friday, April 13, 2012 10:44 AM To: [email protected] Subject: Re: WE And Microsoft Development Environments Here's the VB version of my previous example: Public Class Form1 Private weApplication As WindowEyes.Application Private WithEvents weClientInformation As WindowEyes.ClientInformation Private mySpeech As WindowEyes.Speech Private myMSAAEventSource As WindowEyes.MSAAEventSource Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load weApplication = New WindowEyes.Application weApplication.ClientIdentify(System.Diagnostics.Process.GetCurrentProcess().Id) weClientInformation = weApplication.ClientInformation AddHandler weClientInformation.OnShutdown, AddressOf Me.weClientInformation_OnShutdown Me.Hide() End Sub Private Sub myMSAAEventSource_OnObjectFocus(accObj As WindowEyes.Accessible) Dim handeledEvent As Boolean = False Try accObj.Prefetch(WindowEyes.AccessibleProperty.apAll) If accObj.role.Value = WindowEyes.AccessibleRoleEnum.role_SYSTEM_PUSHBUTTON Then mySpeech.Speak(accObj.Name & ". I has a button!") End If Catch ex As Exception ' Something bad happened End Try If Not handeledEvent Then accObj.SimulateEvent(WindowEyes.MSAAEventID.event_OBJECT_FOCUS, WindowEyes.AccessibleProperty.apAll) End If End Sub Private Sub weClientInformation_OnShutdown() Me.Close() End Sub End Class Aaron On 4/12/2012 6:40 PM, RicksPlace wrote: Hi Aaron: I dont remember the exact problem. It might have been something to do with that Message Processing problem I mentioned but I think you, or one of the other guys, had mentioned that problem had been addressed so I'm not sure that was the problem. I think I still have that VB.net project floating around and will ReVisit it. If I get it working I will post it as another example of scripting WE from within the Visual Studio (VB.net Express) environment. If not I will post up any problems I encounter. It might take a few days as I am tied up with something else but I will give it another go before long. Hay, you other folks who program are invited to give it a go in another language. Kate, what about Power Basic? Rick USA ----- Original Message ----- From: Aaron Smith To: [email protected] Sent: Thursday, April 12, 2012 3:49 PM Subject: Re: WE And Microsoft Development Environments On 4/11/2012 6:21 PM, RicksPlace wrote: I never got MSAA working properly and had some other problems which I couldn't resolve. Do you remember what the issues were? I whipped up this example real quick which demonstrates speaking "I has a button" any time a button accessible gets focused: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Text; using System.Windows.Forms; using WindowEyes; namespace MSAAEventProc { public partial class MSAAEventProc : Form { private WindowEyes.Application weApplication = null; private WindowEyes.ClientInformation weClientInformation = null; private WindowEyes.Speech mySpeech = null; private WindowEyes.MSAAEventSource myMSAAEventSource = null; public MSAAEventProc() { Debug.WriteLine("init"); InitializeComponent(); // Get the application object weApplication = new WindowEyes.Application(); // Introduce ourselves to Window-Eyes weApplication.ClientIdentify(System.Diagnostics.Process.GetCurrentProcess().Id); weClientInformation = weApplication.ClientInformation; // Hook Shutdown so we can clean up weClientInformation.OnShutdown += new ClientInformationEvents_OnShutdownEventHandler(weClientInformation_OnShutdown); // Hook MSAA events myMSAAEventSource = weApplication.MSAAEventSource; myMSAAEventSource.OnObjectFocus += new MSAAEvents_OnObjectFocusEventHandler(myMSAAEventSource_OnObjectFocus); // Set up Speech so we can talk mySpeech = weApplication.Speech; } private void myMSAAEventSource_OnObjectFocus(WindowEyes.Accessible accObj) { bool handeledEvent = false; try { // Prefetch all the Accessible info accObj.Prefetch(AccessibleProperty.apAll); // If it's a button, we'll handle it. if (accObj.role.Value == AccessibleRoleEnum.role_SYSTEM_PUSHBUTTON) { mySpeech.Speak(accObj.Name + ". I has a button!"); } } catch (Exception e) { // Something bad happened; } if (!handeledEvent) { // Simulate the event accObj.SimulateEvent(MSAAEventID.event_OBJECT_FOCUS, AccessibleProperty.apAll); } } private void weClientInformation_OnShutdown() { // Bye Close(); } } } Aaron -- Aaron Smith Web Development * App Development * Product Support SpecialistGW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825260-489-3671 * gwmicro.com To insure that you receive proper support, please include all pastcorrespondence (where applicable), and any relevant informationpertinent to your situation when submitting a problem report to the GWMicro Technical Support Team. -- Aaron Smith Web Development * App Development * Product Support SpecialistGW Micro, Inc. * 725 Airport North Office Park, Fort Wayne, IN 46825260-489-3671 * gwmicro.com To insure that you receive proper support, please include all pastcorrespondence (where applicable), and any relevant informationpertinent to your situation when submitting a problem report to the GWMicro Technical Support Team.
