簡體   English   中英

C ++ / Win32查找所有鍵盤輸入語言?

[英]C++/Win32 Finding all keyboard input languages?

我想找到鍵盤的所有輸入語言,用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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM