Ralf,

I just popped up Immed and typed the following two lines:

sub SpeakTitle(): speak "the new tab is " & ActiveWindow.Title : End Sub
Set x=Keyboard.RegisterCursorKey("Control-Tab", "SpeakTitle")

I then brought up IE 8 and opened up a few tabs. Then when I press control-tab I hear the correct title 100 percent of the time. Can you try this test?

Doug

On 11/15/2010 2:56 PM, Ralf Kefferpuetz wrote:
Doug,

here is a small example of the keyboard.registerCursorKey function showing
that it does not fires up after the key goes to the application.

dim cKey(2)
set cKey(0) = Keyboard.RegisterCursorkey("Control-Tab", "speakTitle",
ClientInformation.ApplicationProcess, "Key07")

Sub speakTitle(myKeyId)
speak "  this is ralf his function: "&  activewindow.title
End Sub

Now load this test script in firefox or in Internet Explorer and you will
see that it will not announce the correct tab. It will announce only the
title of the web side you are in before releasing the control tab key. The
in the set file implemented cursor key for control-tab will announce the
correct title.

Cheers,
    Ralf

Ralf Kefferpuetz
* Germany
* MSN/Live: [email protected] * Aim: RalfKatEMC * Skype/Yahoo:
rkefferpuetz7747 *


-----Original Message-----
From: Doug Geoffray [mailto:[email protected]]
Sent: Monday, November 15, 2010 7:33 PM
To: [email protected]
Subject: Re: Keyboard.RegisterCursorKey question

Ralf,

As Lloyd suggested I'm sure this is just timing.  I had a caveat in my
first email where I said there is no way to guarantee the application
has done its thing.  We can only guarantee the application has seen the
key.  In your case it probably takes some time to go and scan all the
new files and populate the list.  So you could either put in some
arbitrary delay before reading or try and figure out a way to know when
it has actually changed before reading based on a screen change of some
sort.

Doug

On 11/15/2010 12:30 PM, Ralf Kefferpuetz wrote:
Hello Doug,

well, I have an application , a file manager (Total Commander),with tabs
in
it. Hitting control-tab brings me to the next tab. Each tab changes the
list
view with files, means the directory path of the list view. I simply want
WE
to announce the new path, which is related to a tab.

I tried the following:

dim cKey(2), KeyLabel
set cKey(0) = Keyboard.RegisterCursorkey("Control-Tab", "currentPanel",
ClientInformation.ApplicationProcess, "Key07")

Sub currentPanel(myKeyId)
... code for reading the control which holds the path string...
End Sub

You see, it now always reads the path of the actual path, not the one
which
is active after control-tab is released.
I hope this explains a bit better what I'm trying to achieve.

Cheers and thanks a lot,
    Ralf

Ralf Kefferpuetz
* Germany
* MSN/Live: [email protected] * Aim: RalfKatEMC * Skype/Yahoo:
rkefferpuetz7747 *

-----Original Message-----
From: Doug Geoffray [mailto:[email protected]]
Sent: Monday, November 15, 2010 2:59 PM
To: [email protected]
Subject: Re: Keyboard.RegisterCursorKey question

Ralf,

After reading this again I think I was confused on what you were asking.

When you do a Keyboard.RegisterCursorKey the even fires after the
application sees the key.  You stated it fires before which is not
correct.  It only fires once and that is after the application see it.

I was referring to cursoring keys which are part of the set file.  If
you hook Application.OnCursorKey then what I said is true but that isn't
what you are doing or asking.

If this isn't what you want or need then maybe explaining exactly what
you are wanting to do would help me give you better advice of how to get
there.

Doug

On 11/15/2010 8:30 AM, Doug Geoffray wrote:
Ralf,

When you register OnCursorKey it actually fires both before the
application sees it and after the application sees it.  Meaning you
are guaranteed to get the event twice with each single keypress.  The
IsBeforeApplication flag that gets sent to your event handler
indicates if it is firing before or after.

Isn't this what you are asking for?

But as an fyi, just because it fires after the application sees the
keypress, it doesn't guarantee the application did anything with it or
at least did anything with it yet.  However, normally it works fine.
Typical problems may be if the application is sluggish to
respond...say it is working over a slow network of some sorts for
example.

Regards,
Doug

On 11/14/2010 10:17 AM, Ralf Kefferpuetz wrote:
Hello all,

as far as I understand it right the Keyboard.RegisterCursorKey
fireds the
function, before  the cursorKey is passed to the application. Do we have
something similar to Keyboard.RegisterCursorKey, but it should fire
up after
the  key is passed to the application?

Many thanks,
     Ralf

Ralf Kefferpuetz
* Germany
* MSN/Live: [email protected] * Aim: RalfKatEMC * Skype/Yahoo:
rkefferpuetz7747 *


Reply via email to