Doug, thanks for your patience. It worked immediately in IE, but not in firefox. After putting in a sleep 500 it worked for me in firefox too. So, I have to revise my statement that the keyboard.registerCursorKey does not what we expect it to do ;-) In the meantime I understand why it can not work in the Total Commander script. The reason for that is that the path information, I'm looking for when hitting control-tab, only gets updated when the keys are released, both, the control and the tab key. That's why registerCursorKey did only give me the path info, I was before pressing control-tab. I found a workaround for that and now it works as expected.
Many thanks, Ralf Ralf Kefferpuetz * Germany * MSN/Live: [email protected] * Aim: RalfKatEMC * Skype/Yahoo: rkefferpuetz7747 * -----Original Message----- From: Doug Geoffray [mailto:[email protected]] Sent: Thursday, November 18, 2010 2:12 PM To: [email protected] Subject: Re: Keyboard.RegisterCursorKey question 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 * >>>> >>>>
