PowerShell has no support for WSH, I don't think, and it is strictly
.NET.
*From:*RicksPlace [mailto:[email protected]]
*Sent:* Friday, April 13, 2012 4:13 PM
*To:* [email protected]
*Subject:* Re: WE And Microsoft Development Environments
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 <mailto:[email protected]>
*To:*[email protected] <mailto:[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]]
<mailto:[mailto:[email protected]]>
*Sent:* Friday, April 13, 2012 10:44 AM
*To:* [email protected] <mailto:[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 <mailto:[email protected]>
*To:*[email protected] <mailto:[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.
--
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.