Dot Net中InputLanguage对象的使用限制

  在Dot Net中,InputLanguage对象是“提供方法和字段以管理输入语言。无法继承此类。”

  InputLanguage对象中InstalledInputLanguages方法获得系统已经安装的输入法;CurrentInputLanguage方法是获取或设置当前输入法;DefaultInputLanguage方法是获取系统的默认输入法。通过InputLanguage对象的这三个方法,可以设置指定的输入法。

  而在笔者将程序给他人使用时,却意外的在其中一台机器上报错。由于是已经编译好的程序,而且又不在笔者的身边,故只知道是InputLanguage对象出了问题,而具体的错误编号不知道。

  通过QQ远程观看了错误的提示后,第一感觉就是他没有装中文输入法。可是,他明明装了输入法,有搜狗、QQ拼音等。输入法使用也正常。

  出于直觉,查看他的“文字服务和输入语言”窗口。正常的应该象下面一样。

  可是意外的现象出现了,在他的电脑上这个是一片空白,下面提示一行字“检测到不兼容的键盘驱动程序该对话框已经被禁用”。

  在网上搜了搜解决方法。发现由于种种原因,系统注册表中HKEY_LOCAL_MACHINE\SYSTEMCurrentControlSet\Control\Keyboard Layouts的键值下的内容全被删除了。

  详情参看“文字服务和输入语言的选项显示空白”。

  按照上文的方法,将缺失的注册表部分导入到他的系统中。OK!解决了。不再报错。

  由此可以知道,InputLanguage对象是通过访问注册表来控制输入法的。一旦注册表的内容有误。也就导致了错误的产生。

  不过,难以理解的是为何注册表出错,而输入法却能正常使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值