C#制作输入法程序
使用C#制作一个输入法程序,我目前编写了一个.ini的字库,现在的问题是如何制作在一按键盘输入时弹出悬浮窗,并且如何调用字库内的汉字和词语,还有就是如何判断是否是正在使用...
使用C#制作一个输入法程序,我目前编写了一个.ini的字库,现在的问题是如何制作在一按键盘输入时弹出悬浮窗,并且如何调用字库内的汉字和词语,还有就是如何判断是否是正在使用的是我的输入法,有满意答案的我可以追加分。
展开
1个回答
2013-04-19
展开全部
具体流程是这样,首先制作一个标准输入法文件,但是这个输入法并不完成文字输入工作,它的唯一任务就是用来注入DLL,所以称为“服务输入法”,然后,制作一个控制程序,来控制服务输入法,当然最后还需要一个用于注入的目标DLL,这样一共就有3个文件。开始工作后,控制程序首先将服务输入法安装到系统中,然后传递几个参数给服务输入法,参数中包括了需要注入的DLL文件的名称和路径,然后,控制程序将服务输入法设置为系统的默认输入法,这样新的程序一打开,服务输入法就会注入那个程序。当然,在服务输入法安装之前打开的程序不会被注入,这时需要向系统中的所有窗口POST一条WM_INPUTLANGCHANGEREQUEST消息,该消息可以在指定窗口中后台激活服务输入法,这样,系统中所有拥有窗口的进程就都被我们的服务输入法注入了。服务输入法注入程序之后,就会根据控制程序传递过来的参数加载目标DLL,这样目标DLL也就随着服务输入法一同注入到目标程序中了。注意服务输入法是控制程序用WM_INPUTLANGCHANGEREQUEST消息在所有窗口中自动激活的,如果某个窗口自动激活失败,你就需要在那个窗口中手工切换到服务输入法,这样才能注入进去了。至于注入以后,你就可以在窗口中切换到别的输入法,这并不会影响已经注入进去的DLL。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询