I don't know whether anyone else is interested but the
following may at least interest Alex who asked whether
it is possible to program every Logitech extra key
without installing Logitech's driver and software.

Earlier, I thought the answer was No but now I have now
found the answer is Yes, using a second method described below,
which I think can be made to work with any brand of keyboard
and does not require editing the registry.

after Alan wrote:
>> One mystery is how much faith to put in KeyTrap's scanmode.
>> I get the impression that the VK number it returns is always true
>> but the scan code might not be.

Sean wrote:
> I'll e-mail you a tiny app which does a similar job as scanmode. It'll
> show more detailed infos than scanmode, however. I think one may
> conclude the key indeed doesn't send any scancode if this app doesn't
> output any scancode/vkcode for some key either.

Thank you Sean, keyview.exe has been a very useful tool.
It shows both bytes of the scan code, where scanmode shows
only one byte. In the case of single byte codes both tools
show the same info. However keyview tells you (and scanmode
does not tell you clearly) whether the extra E0 byte is present.
That can be confusing because 2C and E0 2C are actually
different keys.

It appears that, when the Logitech driver is not installed,
every Extra key sends a useful scan code but some do not
send a useful virtual key code, only the useless FF(255).

Further reading of MS documents reveals that after a key is pressed,
both the scan code (including its extra byte if present) and vk code
are placed in a message buffer. What applications do with that info
is up to them.
Some apps only respond to those inputs which result in a character.
Some relate also to the virtual key numbers, but not the scan codes
(for example PP hotkeys).
I think KeyTrap scanmode should be able to see both bytes of the
scan code, so it's a pity that it only reports one of the bytes.

It is possible for a hotkey program to allow you to specify
a scan code, instead of a vk code, as the trigger for your
hotkey command.
That would be very useful for Extra keys which return a unique
SC and the useless vk FF(255) (Logitech's Webcam, Messenger/SMS,
and all its F keys when F Lock is off, all return 255 as the VK
-- with a unique and potentially useful two byte SC).

That's why you can only set some of the extra keys as PP hotkeys
(unless you install the logitech driver and edit the registry)
because PowerPro hotkeys can only be attached to a vk.

AutoHotkey can customise every Extra key even when none of
the Logitech software is installed - "no driver".
Of course there is always a driver, if not Logitech's then
the system's default keyboard driver is used.

The freeware open source AutoHotkey (which is the fabulous new
cousin of AutoIt) allows you to set a hotkey for any scan code.
You can specify one-byte and extended two-byte SCs.

Even more useful: It also has an option to see the pressed key
earlier by using a keyboard hook.
That can make a significant difference with Logitech keyboards.

For example, with no Logitech driver, the MyHome key opens
your default browser at its default home page.
It *also* sends an sc of E0 32(224 50) and a vk of AC(172).
If you set a PP hotkey for vk 172 BOTH things happen -- the
browser thing happens and also your hotkey command.
If you enable AutoHotkey's keyboard hook and set a hotkey for
the MyHome key's scan code, then only the hotkey's command
is executed; the browser is not launched.  :-)
That's one of several advantages gained by getting in as early
as possible in the chain of events after a key is pressed.

Note: Before testing another hotkey app, first do the PowerPro
command: Exec Hotkeys off

AutoHotkey's keyboard hook acts by interrupting the system's
default keyboard driver.
It has those advantages of Logitech's driver which are most useful
to power users (you can program every extra key to do anything)
without the bloat, thus using less memory and maybe also less cpu overhead.

Conclusion:
Having learned to use PowerPro, I am too lazy to learn another
scripting program with similar powers, so I shall use the
Logitech+Regedit+PowerPro solution.

However you may wish to consider two possible ways to program
every extra key:

- using Logitech's driver and virtual PP hotkeys, as described
in the document I uploaded, which requires editing the registry.
- not installing Logitech's software and using an AutoHotkey
script to interrupt the default keyboard driver, which does not
require editing the registry.

Autohotkey has a comprehensive scripting language which can
do many things, not just run notepad! It doesn't have the
same well designed gui like pproconf for setting hotkeys
but its scripts (which can set hotkeys, among other things)
are easy to write and well documented:

#InstallKeybdHook
sc112::Run notepad.exe c:\folder\filename.txt, c:\workdir, max
sc165::Run calc.exe
sc15f::MsgBox, You pressed the User/Sleep key

which can also include multiline responses to a keypress
with if(condition) logic, etc.

I think the AutoHotkey method could be made to work just as easily
with any brand of keyboard, such as MS, including those where it is
not so easy to understand and tweak its registry settings.

AutoHotkey also has its own easy way of telling you the correct
scan code parameter for any of the Extra keys, just by pressing
the "mystery key" in question, giving similar info to keyview.
[sc165 signifies E0 65 ; sc065 signifies 65 without the E0]

Another thing which makes the AutoHotkey method easier to
setup than the method using Logitech's software is that
you don't have to choose spare scan codes and spare VKs.
You just use the existing unique scan codes which are
already attached to each key, and don't have to choose a VK.

The only disadvantage is learning a new script language.
That could be minimised by using AutoHotkey only for its simple
commands and running your familiar PP scripts for more complex
operations:
sc165:powerpro.exe [EMAIL PROTECTED]


Maybe the sanest option is to use neither method and make do
with a keyboard which is only semi-customisable :)



Attention: PowerPro's Web site has moved: http://www.ppro.org 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/power-pro/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to