开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 5370|回复: 7

C#中控制输入法

[复制链接]

0

精华

99

贡献

36

赞扬

帖子
79
软币
769
在线时间
66 小时
注册时间
2013-6-19
发表于 2013-6-21 21:30:02 | 显示全部楼层 |阅读模式
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-CN

Name> Chinese (Simplified) - US Keyboard

Culture> zh-CN

Name> Chinese (Traditional) - New Phonetic

Culture> zh-TW

Name> Japanese Input System (MS-IME2002)

Culture> ja-JP

Name> Chinese (Traditional) - US Keyboard

Culture> zh-TW

Name> 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"字样的输入法作为当前输入法。

评分

参与人数 3赞扬 +3 收起 理由
yrolive + 1 跑不了?
rakehell + 1 Thanks
羽叶 + 1

查看全部评分

回复

使用道具 举报

0

精华

174

贡献

985

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
195
软币
4374
在线时间
369 小时
注册时间
2013-6-7
发表于 2013-6-23 18:06:28 | 显示全部楼层
不错,不过我没想到有什么场景有必要使用这个.
回复

使用道具 举报

0

精华

5295

贡献

6059

赞扬

管理员

帖子
1176
软币
22629
在线时间
4467 小时
注册时间
2013-6-7

黄马甲

发表于 2013-6-23 18:16:48 | 显示全部楼层
看似不错,但好像代码不完整啊?要添加什么引用?
回复

使用道具 举报

0

精华

693

贡献

88

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
69
软币
2033
在线时间
141 小时
注册时间
2013-6-9
QQ
发表于 2013-6-23 21:52:10 | 显示全部楼层
有用,以后可能用得到,谢谢了
回复

使用道具 举报

0

精华

60

贡献

53

赞扬

帖子
73
软币
1545
在线时间
62 小时
注册时间
2013-6-8
发表于 2013-6-28 17:03:01 | 显示全部楼层
一般应用场景是打开指定的输入法而不是默认输入法
回复

使用道具 举报

0

精华

1

贡献

5

赞扬

帖子
143
软币
1751
在线时间
196 小时
注册时间
2013-6-22
发表于 2014-3-5 19:07:24 | 显示全部楼层
感谢楼主无私分享。
回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-23 13:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表