如何在c#中制作像google音译桌面应用程序这样的应用程序

时间:2010-06-09 05:55:06

标签: c# .net keyboard sendkeys

只需要截取键盘输入,转换并发送回来的功能。如果用户按下我喜欢发送电子邮件等等。

使一个接受键盘输入的应用程序修改它并将其发送到活动窗口(可能是word,excel,notepad windows screen等应用程序)等。 该功能就像谷歌的Windows音译应用程序一样。 我想用c#来做。 我认为这涉及在键盘上挂钩并将键(如vb中的sendkey)发送到当前窗口。 工作就像Google transliteration一样。但是,转换的逻辑是完全不同的。

2 个答案:

答案 0 :(得分:0)

我不确定究竟是什么问题,所以它可能会因为太模糊而被关闭。但是,听起来你必须缓冲所有的击键,异步发送单词或短语到某个服务进行音译,然后按照你提到的sendkeys将它们推回键盘缓冲区。问题是,如果您的应用程序具有焦点,我们不知道用户希望音译文本显示在何处,并且如果Word等应用程序具有焦点,则它将同时接收真正的击键和音译文本,这将是然后混在一起(一团糟)。似乎只是为了音译文本块而不是试图干扰键盘缓冲区 - 此外,退格,撤消等几乎不可能被尊重。

答案 1 :(得分:0)

您需要编写一个使用Windows Text Service框架或旧版IME框架的DLL。 这个dll会加载到langauge栏中,当你激活它时;您的代码已经实现了TSF或IME框架所需的一组APIS,它将获得关键事件,然后您可以将其传递给您的代码,该代码将其转换并将字符串传回给您。然后您可以输入另一个已实现的API到Windows应用程序的当前文本编辑器。