关于输入法编程的疑问
现在想编个输入法以实现一些特定字符的输入,遇到问题了,希望知道的朋友能够给解答下疑问:
1.输入法的原理是什么(拼音输入法)?
我们在输入汉字时是怎么样实现汉字输入的呢?如果是简单的输入英文的话应该是IMM接受到键盘信息,然后对应输出就可以了吧,汉字呢?是不是读取特定的字符集,取出符合标准的字符,然后输出呢?
2.关于字库的疑问
应为要处理的特殊字符很少,所以想额外制作一个字库,那字库只需要含有基本的标点符号信息再加上需要的特殊字符就可以了,不过要怎么制作字库呢?还有就是字库的取字问题,是不是就像哈希表那样,一个字对应一个KEY值,就像我输入"yun",就能取到它对应的“云”这个汉字呢?
3.最好就是该输入法的设计基本思想了,目前还没什么头绪,不过正在努力学习中,类似于“搜狗拼音输入法”那样的窗体是自己开发的吧?然后注册输入法,这样就能实现快捷键切换输入法了吗?
问题很多,我自己也在上网、看书查资料,不过相信大家肯定有这方面的高手,所以就发帖求教个,希望大家能够把自己的见解告知在下,先谢谢啦
[解决办法]
输入法的设计其实就是设计一个Dll文件,然后修改他的扩展名(已经好长时间了,所以忘记了)。安装到操作系统后由系统统一调用。
具体过程是:
1. 当调用该输入法后,显示输入窗体(自己设计)
2. 监测键盘输入并显示输入字符,同时根据输入的字符在字库中查找相关的汉字并在汉字窗口中显示汉字。这一步比较重要,要输入与汉字显示同步进行。如果输入法的重码率高,还要设置PageUp和PageDown键的作用。
3. 按数字键提取出相关的汉字。
4. 汉字输入完成。
字库的制作:在做输入法时我为了图省事就建立个文本文件。然后把输入码和汉字放在里面就可以了。不过目前有好多方法,你参考其他的方案,我的太简单了,保密性也不好。
特殊字符最好别另外做个字库,就那么几个,没必要,再说,还要进行字库切换,麻烦。
呵呵,说的简单,其实做起来很麻烦,有问题我们继续交流。
[解决办法]
请安装windows sdk for windows7,C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\winui\input目录下有输入法范例,
例如sougou输入法必须按照微软的接口来开发输入法
输入法的设计其实就是设计一个Dll文件,然后修改他的扩展名(已经好长时间了,所以忘记了)。安装到操作系统后由系统统一调用。
具体过程是:
1. 当调用该输入法后,显示输入窗体(自己设计)
2. 监测键盘输入并显示输入字符,同时根据输入的字符在字库中查找相关的汉字并在汉字窗口中显示汉字。这一步比较重要,要输入与汉字显示同步进行。如果输入法的重码率高,还要设置PageUp和PageDown键的作用。
3. 按数字键提取出相关的汉字。
4. 汉字输入完成。
字库的制作:在做输入法时我为了图省事就建立个文本文件。然后把输入码和汉字放在里面就可以了。不过目前有好多方法,你参考其他的方案,我的太简单了,保密性也不好。
特殊字符最好别另外做个字库,就那么几个,没必要,再说,还要进行字库切换,麻烦