Hi Miroslav,
> Hi Klas. Thanks - you are right - they're not scan codes.
>
> The problem you explain sound to me like duplicated keys when standard
> inkey codes are used.
I just dug out the assembler sources of a keyboard driver I wrote way
back in the eighties based on info I found in various places at the
time, and I checked the row of the number keys (see the schematic
scancode illustration in the document I linked to yesterday). I found
that Ctrl plus one of those keys did not return anything useful there
either - usually 255 decimal, which is also what Clipper returned in
several cases when I tested in XP Mode yesterday. So it is possible that
there is nothing to pickup for the Harbour runtime from those key
combinations (I have not really searched for additional info about
keyboard drivers on the web, so things might have changed in the last
30+ years ... :-) )
> With extended codes keys are encoded more like code of "1" + modifiers -
> CTRL, ALT, SHIFT, etc..
>
> here are more key combinations with no effect on Inkey (just sitting and
> waiting for a key.. and not sensing any keypress)
> Keys such as CTRL+1, 2, 3, 4, ...
> CTRL-ALT-A, B, C, D, ....
> CTRL-ALT-1, 2, 3, 4, ....
> all these key combinations are invisible for inkey. No keypress detected
> at all.
The Ctrl + Alt combination is generally supposed to be translated to
AltGr, but I am not sure if it is entirey consistent. AltGr did not
exist at the time when I wrote my keyboard driver, so I do not have any
translation tables handy. And AltGr is only supported for keyboards with
three glyphs on the keytops and only for those keys.
> At the same time much less meaningful key as (numlock off) keypad 5 has
> is ok.
Probably because there is OS support readily available for it.
> CTRL-SHIFT-DEL is also ok...
The Grey keypad is supported in various combinations, but adding Ctrl or
Shift to Alt does not alter the Alt+AnyGreyKey inkey code, and adding
Shift to Ctrl does not alter the Ctrl+AnyGreyKey inkey code. But you can
check if one or more additional shift keys are pressed using
hb_gtinfo(HB_GTI_KBDSHIFTS) and branch accordingly in your application.
Or you can check the extended key code and its flags.
Regards,
Klas