在.net里面有一个类控制输入法:
具体文章请看:
http://www.yesky.com/20020108/213018.shtml

解决方案 »

  1.   

    To:seaman_X(水手)介绍的文章看了,当前的输入法可以改变了,但要指定要得到的输入法
    的索引。在知道操作系统装的输入法索引时可以随便改变当前输入法,
    但用户机子里的输入法索引并不知道啊还有什么更好的方法吗?
      

  2.   

    我像一般中文系统上在win98以上,微软拼音输入法总是有的
      

  3.   

    InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[3];InputLanguage类的方法大部分为静态的不需要实例化直接调用
    命名空间为:System.Windows.Forms具体程序中怎么做就你自己自由发挥了
      

  4.   

    InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[3];InputLanguage类的方法大部分为静态的不需要实例化直接调用
    命名空间为:System.Windows.Forms具体程序中怎么做就你自己自由发挥了
      

  5.   

    To:cancan28(cancan)请看清楚我在你上面一条的发言好吗?你写的一句:
    InputLanguage.CurrentInputLanguage = InputLanguage.InstalledInputLanguages[3];你知道索引为3的输入法是什么吗?如果是你用的机子那当然知道,但如果是
    任一用户的机子,那么索引为3的输入法就不一定是你想得到的输入法了。
      

  6.   

    to:cancan28(cancan) 请先看清楚一点我在你上面的一条留言好吗?索引为3的输入法你知道是什么输入法吗?如果是你自己的机子那当然知道,
    但如果是任一个用户的机子你还能知道吗?所以就不一定会得到自己想要的
    输入法,还有更好的办法吗?
      

  7.   

    To:bearontree(树袋熊) 用户要用到的输入法知道啊,这是由我提供的输入控件决定的啊,有些是
    要输入汉字的(比如:姓名),这些当然是用汉字啦你怎么知道默认的输入法是中文的呢?有时用户的机子里默认输入法就是
    英文的啊
      

  8.   

    To:seaman_X(水手)能说说你具体怎样判断是否符合语言要求吗?
      

  9.   

    To:seaman_X(水手) 你如何判断是否符合语言要求的呢?
      

  10.   

    我来说说我的想法没有人会反对吧:(
    我最近在做录入程序,我觉得对于录入输入法的控制嘛。。
    第一次输入法的切换应该由用户来进行。
    当到需要切换的文本框时:
    1.就模拟键盘输入(ctrl+space)。
    2.或者捏,先获取e文输入法的索引。再转为e文。
    提交后,比较最后一次的输入法和最开始的输入法决定是否需要切换。
    说了那么多,我不知道怎么样模拟键盘输入。。也不知道怎么样获取e文输入法的。。
    哪为高手写写喂。谢!
      

  11.   

    To hlf:其实,在seaman_X提供的链接中,已经对如何在WinForm中控制输入法作了相当详细地介绍了。针对您所关心的两个问题,即如何获取系统中所有的输入法,以及如何根据输入语言及其他特殊要求选择特定的输入法,下面我以两段程序片断再加以说明。1)遍历系统中所有的输入法,可以用以下程序片断:
    foreach(InputLanguage lang in InputLanguage.InstalledInputLanguages) 
    {
    this.textBox1.Text += "\r\nName> "+lang.LayoutName+"\r\nCulture> "+lang.Culture.Name + "\r\n";
    }
    运行的结果类似:Name> Chinese (Simplified) - Microsoft Pinyin IME 3.0
    Culture> zh-CNName> Chinese (Simplified) - US Keyboard
    Culture> zh-CNName> Chinese (Traditional) - New Phonetic
    Culture> zh-TWName> Japanese Input System (MS-IME2002)
    Culture> ja-JPName> Chinese (Traditional) - US Keyboard
    Culture> zh-TWName> Japanese
    Culture> ja-JP得到系统中所有的输入法以后,就可以通过Culture和Name来选择特定的输入语种和输入法。
    2)切换到简体中文输入法
    if(InputLanguage.DefaultInputLanguage.LayoutName.IndexOf("Keyboard")==-1 && InputLanguage.DefaultInputLanguage.Culture.Name.Equals("zh-CN"))
    {
    InputLanguage.CurrentInputLanguage=InputLanguage.DefaultInputLanguage;
    }
    else
    {
    foreach(InputLanguage lang in InputLanguage.InstalledInputLanguages) 
    {
    if(lang.Culture.Name.Equals("zh-CN") && lang.LayoutName.IndexOf("Keyboard")==-1)
    {
    InputLanguage.CurrentInputLanguage=lang;
    break;
    }
    }
    }
    在这段程序中,首先对系统默认的输入法进行判断,如果默认输入法的Culture是zh-CN,而且输入法名字中不包含"Keyboard"字样,说明默认输入法是一种简体中文输入法,而且不是"Chinese (Simplified) - US Keyboard",这时就将系统默认的输入法作为当前输入法。如果以上条件不满足,则对系统中安装的所有输入法进行遍历,将遍历时所遇到的第一种Culture为zh-CN而且输入法名字不包含"Keyboard"字样的输入法作为当前输入法。
    Hogwarts - S(u)ddenly dis@ppeared...

    本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。  
    为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。