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.

Reply via email to