C# 用InputLanguage获取输入法,全是输入法美式键盘不见了

comboBox1获取系统安装的所有拼音输入法根据选择控制当前输入法,目前的做法会导致当前输入法与实际选择的不一致不知道哪位能帮忙提出修改办法,感激不尽!privatevoidForm1_/usercenter?uid=fa">ashlll0

你把后面嘚改成这样试试

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

虽说输入法不是什么新事物各種语言版本都有,不过在C#不常见;这就会给人一种误会:C#不能做!其实C#能不能做呢答案是肯定的——三种方式都行:IMM、TSF以及外挂式。IMM这種就是调windows的一些底层api不过在新版本的windows中基本上已经不能用了,属于一种过时的操作方式TSF是微软推荐的一种新方式,不过相对C#资料太少;线上主要的一些都是针对C++的版本资料当然可以作为借鉴来实现C#版的。我这里主要介绍一种外挂式的(天啦撸C#可以写外挂?)对于高手来说肯定不值一提,不过也算是实现了外挂及输入法!题外话——C#可以做外挂么答案是可以的,C#针对windows的api编程资料还是很多的下面僦简单的介绍一下面可能要使用到的api:

安装了一个钩子,截取鼠标键盘等信号

通过信息钩子继续下一个钩子

使用WINDOWS API函数代替获取当前实例的函数,防止钩子失效

转换指定的虚拟键码和键盘状态的相应字符或字符

int uScanCode, // [in] 指定的硬件扫描码的关键须翻译成英文高阶位的这个值设定的关键,如果是(不压)
byte[] lpbKeyState, // [in] 指针以256字节数组,包含当前键盘的状态每个元素(字节)的数组包含状态的一个关键。如果高阶位的字节是一套關键是下跌(按下)。在低比特如果设置表明,关键是对切换在此功能,只有肘位的CAPS LOCK键是相关的在切换状态的NUM个锁和滚动锁定键被忽略。

我要回帖

更多关于 输入法美式键盘不见了 的文章

 

随机推荐