none
WIN8 输入法切换不成功 ITfInputProcessorProfiles::ActivateLanguageProfile方法失效 RRS feed

  • 问题

  • IEnumTfLanguageProfiles* pEnumProf = 0;
            hr = pProfiles->EnumLanguageProfiles(0x0411, &pEnumProf);
            if (SUCCEEDED(hr) && pEnumProf)
            {
                TF_LANGUAGEPROFILE proArr[2];
                ULONG feOut = 0;
                int i = 0;
                while (S_OK == pEnumProf->Next(1, proArr, &feOut))
                {
                    BSTR bstrDest;
                    hr = pProfiles->GetLanguageProfileDescription(proArr[0].clsid, proArr[0].langid, proArr[0].guidProfile, &bstrDest);
                    OutputDebugString(bstrDest);
                    wprintf(bstrDest); printf("\n");
                    BOOL bEnable = false;
                    hr = pProfiles->IsEnabledLanguageProfile(proArr[0].clsid, proArr[0].langid, proArr[0].guidProfile, &bEnable);
                    
                    CString s1 = bstrDest;
                    CString s2 = __TEXT("Microsoft IME");
                    if (SUCCEEDED(hr))
                    {
                        if( s1 == s2)
                        {
                            HRESULT hr1 = pProfiles->ActivateLanguageProfile(proArr[0].clsid,proArr[0].langid,proArr[0].guidProfile);
                            if(SUCCEEDED(hr1))
                            {
                                printf("Enabled %d\n", bEnable);
                            }
                        }
                    }
                    SysFreeString(bstrDest);
                }
            }
    2013年12月12日 1:34

全部回复

  • 这世道越来越不好混了,高手都藏起来了
    2013年12月12日 9:15
  • 你好,

    你是如何切换输入法的?你调用函数ITfInputProcessorProfiles::ActivateLanguageProfile后返回的具体是什么值?

    最好提供完整的代码帮助我们重新你的问题。

    谢谢


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2013年12月16日 7:51
  • 如果能从不是Microsoft IME的输入法开始执行这段代码,所期望的现象是切换到IME输入法,

    但是实际上的现象是在VISTA/WIN7下,这段代码都是正常的,在WIN8下,这段代码打出了"Enabled"在控制台上面,但是没有切换输入法

    2013年12月18日 7:07
  • 你好,

    您能否提供一个完整的可以重现该问题的代码,我可以帮你在我的win8.1环境下测试一下是否也存在同样的问题。

    其次,你还可以到 Application compatibility for windows desktop development 论坛http://social.msdn.microsoft.com/Forums/en-US/home?forum=windowscompatibility 咨询这个问题。  


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2013年12月20日 6:18
  • 你可以提供一个切换输入法的简单程序给我,嘿嘿,你们那边专家多嘛
    2013年12月20日 7:02
  • 我的代码不是不能交出去,而是里面写的太烂了,拿出来太没面子了
    2013年12月20日 7:03
  • 只要能用,我就可以慢慢调
    2013年12月20日 7:03
  • 你好,

    论坛的职责是帮助你们解决代码问题,你编译有问题,或者调试有问题,我们都可以帮助你们的,但是无法帮助大家写代码,希望你能理解:)现在的问题是帮助你解决当前问题,代码写的好坏没关系,重在我们能够重现你的问题从而帮您解决问题。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    2013年12月20日 7:54
  • 我了解了,然后这个帖子可以完结了
    2013年12月23日 5:01