使用ctrl-space你会发现这个功能可以打开你上次关闭前使用的那个输入法效果:
1、如果关闭前用的是美式键盘,那么按下ctrl-space打开排序靠前的那个输入法,排序记录在注册表HKEY_CURRENT_USER\Keyboard Layout\Preload里面
2、如果关闭前,使用的是其他中文输入法,那么按下ctrl-space打开最后一次使用的那个输入法
我想用C#实现第二个功能,不用发sendkeys,谁知道如何实现?
当然用变量记录是个办法,但应该可以有更加通用的办法吧谢谢 输入法ctrl-space上次使用的输入法

解决方案 »

  1.   

    嗯,不知道是我的语文不好,还是你的理解能力有问题。注意看帖子的标题。我说的关闭,指的是关闭输入法。按一下ctrl-space,输入法会被关闭,再按一下ctrl-space,输入法会被打开。如果你没玩过这个,现在试试吧...
    谢谢
      

  2.   

    http://space.itpub.net/23109131/viewspace-630576http://edu.cnzz.cn/53815978.html
      

  3.   


    这两篇文章都看过,说的大概是遍历输入法,然后指定某一输入法的方法。这两篇文章和我在一楼的想法不同,我想知道当前进程按下ctrl-space打开输入法的时候,出现的应该是哪个输入法(或者说进程在关闭输入法之前使用的那个中文输入法是哪个?)?因为不知道应该调出哪个输入法,所以遍历输入法是没用的吧。InputLanguage里面的CurrentInputLanguage和DefaultInputLanguage应该都不是我需要的吧
    或者还有其他的属性我没留意的??
      

  4.   

    ctrl+space弹出的是默认输入法,而不是上次的输入法。至少在我的电脑的默认配置下是如此。
      

  5.   

    可以用ImmSimulateHotKey(IME_CHOTKEY_IME_NONIME_TOGGLE)
    保存当前输入法,用InputLanguage恢复,是最简单的,何必舍近求远呢。
      

  6.   


    在我的电脑上,安装了QQ拼音和bing拼音。
    打开2个记事本,一个切到QQ拼音,一个切到bing拼音。然后分别按ctrl-space关闭输入法
    分别切换到两个记事本窗口,按下ctrl-space,会看到一个出来的是QQ拼音,一个出来的是bing拼音所以,我觉得是不是有什么功能记住了当前线程关闭输入法之前的那个中文输入法?
      

  7.   

    在Win7下,ImmSimulateHotKey好像没啥反应,或者你能提供win7下测试通过的参考代码?