I was able to associate the set file with the nulled out keypad keys to
the class of the app's main document window. A second set file isn't
associated based on the window class, and so WE switches to that when in
the app's dialogs.

This works pretty well. The keypad is ignored in the main window, but
still is available in dialogs.

Thanks everyone.

I have a lot of programming experience, and have read the WE manual and
scripting manual. However, I'm coming from a long history of Jaws and
Jaws scripting, and WE is very differently structured.

Bryan

-----Original Message-----
From: Jim Grimsby JR. [mailto:jgrim...@roadrunner.com] 
Sent: Tuesday, September 29, 2009 10:51 AM
To: gw-scripting@gwmicro.com
Subject: RE: Automatically by-passing WE hotkeys

No because the we file uses the window to load set files.  For example
let's take gold wave.  When you are in the main window it uses one set
file but when you switch to the control window another file is used etc.
if that doesn't work a hyper active window could be created to check to
see what window is active and load a set file based on the information
provided.  Hth


Jim Grimsby Junior.
Please feel free to contact me at anytime using one of the below
methods.
Skype: Jim.Grimsby 909-498-4711.
E-mail: jgrim...@roadrunner.com
Windows live messenger: jim.grim...@att.net


-----Original Message-----
From: Chip Orange [mailto:lists3...@comcast.net]
Sent: Tuesday, September 29, 2009 5:38 AM
To: gw-scripting@gwmicro.com
Subject: RE: Automatically by-passing WE hotkeys

Brian,

I don't see how the .set file suggestion could easily be made to work,
since you only want these keys to be intercepted, or to work normally,
based on where the user is, in the application, at the moment.  maybe
it's easier than it sounds to me, but that sounds like you'd be loading
and unloading set files on the fly to do this?

anyway, an alternative is to use event handlers for the key's up and
down events, and connect them or not based on where the user is.  I do
this in one of my scripts, and in the event handler, you can decide if
the key should be passed to the app, bypassing window eyes altogether
(which is what I needed to do).  anyway, here's an example of what I
mean for setting up the handler for a key, which I'm sure you could
specify as a numeric keypad
key:



' trap up/down arrow keys with ...
set DownArrow = keyboard.key("down arrow") if downArrow is nothing then
speak "failed to get down arrow"
else
' now can trap the key down and up events for the arrows to prevent
window eyes from speaking anything; otherwise, WE will repeat the line
of code.
'
' down arrow
downArrowEvent1 = ConnectEvent ( downArrow, "onKeyDown",
"downArrowOnKeyDown")
downArrowEvent2 = connectEvent ( downArrow, "onKeyUp",
"downArrowOnKeyUp") end if ' downArrow is nothing '


hth,

Chip

 

-----Original Message-----
From: Bryan Smart [mailto:bryansm...@bryansmart.com]
Sent: Monday, September 28, 2009 12:01 PM
To: gw-scripting@gwmicro.com
Subject: Automatically by-passing WE hotkeys

I'm scripting for an application that requires the use of the keypad in
its main window. The app expects to receive keys such as home, end, page
up, page down, and the arrows when the keypad keys are pressed.

I can voice everything in the main window, so not being able to use the
WE cursor there isn't a big loss. However, I'd like the WE cursor to be
available in this app's dialogs and other parts of the user interface.

What is the best way for me to temporarily suspend just the keypad
hotkeys?

I can use a ConnectEvent call to watch for an Activate event in the
overlap area to detect when the foreground window has changed, and I can
evaluate if I'm now in the main window or not. However, the only way to
fix the keypad keys seems to be to unregister all of those WE hotkeys
when the main app window gains focus, and then to reregister them when
the main window loses focus. This can't be the best way, though, as,
when I reregister the hotkeys, I can only register them back to what I
think they should be, and, I believe, the user can redefine these. I'll
have, therefore, potentially messed up the user's default assignments.

Any suggestions are welcome.

Bryan

Reply via email to