zoukankan      html  css  js  c++  java
  • SetCurrentIME的问题

    近日收到一个需求:需要在系统开机时自动将输入法切换成全屏手写输入。但如果直接修改注册表,将系统默认输入法设置成全屏手写后,就不能开机。

    所以写了一机自动加载的程序,在该程序中调用SetCurrentIME将输入法切换成全屏手写。但发现需要点击一下屏幕才能切换成功,而且使用软件模拟点击不是行的。

    不知道有没有人遇到过,如何解决的?

    代码如下:

    #include <windows.h>

    #include <sipapi.h>

    GUID csidInput={ 0x5AAFAF99, 0x8D99, 0x4466, 0xA6, 0x6D, 0x95, 0xC4, 0x4B, 0x60, 0x8A, 0x84 };

    //GUID csidInput={  0x9E06C6B8, 0xFE4D, 0x4206, 0x9A, 0x5B, 0x6E, 0x4C, 0x1B, 0x8B, 0x6A, 0xD7 };

     

    int _tmain(int argc, _TCHAR* argv[])

    {

         LANGID idLang=GetUserDefaultUILanguage( );

        

         if( 0x0804 == idLang || 0x0404 == idLang )

         {

             CLSID idIMSelected;

             DWORD dwCount=0;

             DWORD dwError=0;

            

             while( 1 )

             {

                 //if( SIP_STATUS_AVAILABLE ==  SipStatus( ) )

                  {

                       if(  SipSetCurrentIM( (CLSID*)&csidInput ) )

                       {

                           SipGetCurrentIM( &idIMSelected );

                           {

                               if( 0== memcmp( &idIMSelected, &csidInput, sizeof( CLSID ) ) )

                               {

                                SipShowIM( SIPF_OFF);

                                break;

                               }

                           }

                      }

                      else

                      {

                      dwError=GetLastError( );

                     

                      }

                  }

                 Sleep(1000);

                 dwCount++;

             }

         }

    }

  • 相关阅读:
    Android使用LocalSocket抓取数据
    求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}
    链表A和B的有序合并,合并过程不产生新的节点,合并后B消失
    Android中intent如何传递自定义数据类型
    字符串的排列组合问题
    android.net.LocalSocket
    [转]OWC生成柱图,线图,饼图
    利用C#对远程服务进行操作
    域备份&域还原
    ActiveReports for .NET 简单使用
  • 原文地址:https://www.cnblogs.com/ceblog/p/2102494.html
Copyright © 2011-2022 走看看