キーボードのすべての入力言語、つまりLEFT ALT+SHIFTで切り替える言語を見つけたいと思います。
Win APIを使用して、デフォルトのロケールとインストール/サポートされているロケールを取得できますが、キーボードの入力ロケールについては何も見つかりませんでした。
キーボードのすべての入力言語、つまりLEFT ALT+SHIFTで切り替える言語を見つけたいと思います。
Win APIを使用して、デフォルトのロケールとインストール/サポートされているロケールを取得できますが、キーボードの入力ロケールについては何も見つかりませんでした。
GetKeyboardLayoutList関数を使用する必要があります。
たとえば、すべてのキーボード入力言語をコンソールに出力するには、次のコードを使用できます。
UINT uLayouts;
HKL *lpList = NULL;
wchar_t szBuf[512];
uLayouts = GetKeyboardLayoutList(0, NULL);
lpList = (HKL*)LocalAlloc(LPTR, (uLayouts * sizeof(HKL)));
uLayouts = GetKeyboardLayoutList(uLayouts, lpList);
for(int i = 0; i < uLayouts; ++i)
{
GetLocaleInfo(MAKELCID(((UINT)lpList[i] & 0xffffffff),
SORT_DEFAULT), LOCALE_SLANGUAGE, szBuf, 512);
wprintf(L"%s\n", szBuf);
memset(szBuf, 0, 512);
}
if(lpList)
LocalFree(lpList);