I need to be able to read a char and get it's Key relevant to it's language and keyboard layout.
I know how to see the cultural settings and languages. But how can i take a letter like 'S' in english and know what key it is on the keyboard? Or for a harder problem, how can i take the letter 'ש' and know what key it is on the keyboard?
This one might be more easily explained with an example program than anything else:
Output:
(Though your own console might mess up ש and/or é depending on settings and fonts).
Note that the Windows kludge of using Ctrl+Alt as a substitute in case a keyboard has no AltGr key is precisely how it is reported, it's only at a lower level again that the two are treated as separate, which is one of the things that makes Windows keyboards less flexible (Alt + AltGr is meaningless in Windows).
Edit: The constructor for
KeyboardPointer
that takes aCultureInfo
has obvious ease of use, but that which takes a number is useful for secondary keyboards for a given culture. E.g. en-US most often uses 0x0149, but there are variants with a different higher word (0x00010149, 0x00020149, 0x00030149, etc.) for variant layouts like Dvorak, extended support for characters (the so-called "International US" needed to write English words like "naïve", "façade" or "résumé"), and so on.You can parse the KeyCode to determine if it containts the Letter you are searching for. For non english input i guess you will have to map these to english letters to know which key is it on the keyboard.