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 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.