none
ImmGetDescription取得IME的描述信息失败,IME2007,IME2010均失败,但是能取到Google输入法的,为什么,如何能取得正在使用的输入法名称 RRS feed

  • 问题

  • 本人提供的代码:

        HKL m_lLayoutHandle = GetKeyboardLayout(0);
        HWND m_lTargetWindow = hDlg;

        //REGISTERWORD tRegWord;
        //tRegWord.lpReading = TEXT("");
        //tRegWord.lpWord = TEXT("123456789");
        //ImmConfigureIME(m_lLayoutHandle, m_lTargetWindow, IME_CONFIG_REGISTERWORD, &tRegWord);

        

        //GUITHREADINFO Gti;
        //::ZeroMemory ( &Gti,sizeof(GUITHREADINFO));
        //Gti.cbSize = sizeof( GUITHREADINFO );
        //::GetGUIThreadInfo(0,&Gti);
        //DWORD dwThread = ::GetWindowThreadProcessId(Gti.hwndActive,0);
        //HKL lang = ::GetKeyboardLayout(dwThread);

        TCHAR szImeFileName[64];
        DWORD dwResult = ImmGetDescription(lang, szImeFileName, 64);
        MessageBox(hDlg,(LPCTSTR)(szImeFileName),TEXT("OK"),0);

        对于有一些输入法,能正常取得输入法的名称,如Google输入法,但是对于IME系列的输入法就取出来是乱码。本人还有一个问题,微软TSF架构下的输入法,如何取得当前系统正在使用的输入法的名称

    2013年12月3日 6:52