Re: Windows and MacOS keyboard layouts in human-readable format?

From: Adam Twardoch (list.adam@twardoch.com)
Date: Tue Dec 30 2003 - 13:30:54 EST

  • Next message: Adam Twardoch: "Re: German 0364 COMBINING LATIN SMALL LETTER E"

    Michael, Peter, and others:

    Thank you for the responses.

    I agree with Michael that the simplistic approach I have envisioned would be
    rather incomplete -- I'm willing to accept that limitation. I am aware of
    many issues involving IMEs, "chaining" dead keys etc. I would be willing to
    leave them out of the scope, i.e. I'd be willing to accept as much as it
    gets within a somewhat "flat" table.

    I have since then read some descriptions of Windows API functions. For
    example, I found out that the Windows user32.dll function VkKeyScanEx
    translates a character to the corresponding virtual-key code and shift
    state. This makes me conclude that Windows developers already had this kind
    of "back-lookups" in mind, and were willing to accept the limitations.

    I guess with some API calls, I should be able to put together such table, or
    even a mechanism to gather the information dynamically. I will be writing in
    Python for Windows, so it's a bit awkward to gather all that information.
    But maybe I'll try to prototype in C++ (a pity I'm so bad at C++
    programming).

    (Michael,)

    from my understanding, when I have a Unicode character, I should be able to
    translate it to a virtual key code via VkKeyScanEx, then the virtual key
    code to a scan code using MapVirtualKey, and finally translate the result to
    a human-readable name using GetKeyNameText. Is that a correct approach? Does
    anybody happen to have a ready-to-use function (C++, VB, Python)? :D

    (Peter,)

    I am aware that there is a XML-to-driver mechanism that can be used. But is
    there a way the other way around? I.e. a way from the existing system
    kyboard mappings to a human-readable form?

    Thank you,
    Adam



    This archive was generated by hypermail 2.1.5 : Tue Dec 30 2003 - 14:11:25 EST