tags:

views:

21

answers:

1

I can call GetKeyboardLayout to retrieve an "input locale identifier", which identifies the active layout in Windows. How can I convert this to a human-readable name, such as "English (United States)"?

GetKeyboardLayoutName is misleading - it just returns a string containing a hex version of the identifier retrieved by GetKeyboardLayout.

+2  A: 

Here is a list of keyboard layout names with their key names.

Edit: I scanned registry and I found keyboard layout names on this location:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layouts

Nick D