繁体   English   中英

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

[英]How to make an application like google transliteration desktop application in c#

仅需要拦截键盘输入,转换并发送回键盘的功能(例如,如果用户按下ai wold喜欢发送e等)。

要使应用程序接受来自键盘的输入,请对其进行修改,然后将其发送到活动窗口(可能是word,excel,notepad Windows屏幕之类的应用程序)等。此功能类似于google的Windows音译应用程序。 我想用c#来做。 我认为这涉及钩住键盘并将键(例如vb中的sendkey)发送到当前窗口。 工作就像Google音译一样,但是转换的逻辑却大不相同。

我不确定问题的确切含义,因此可能因为过于含糊而无法解决。 但是,听起来您必须缓冲所有击键,将单词或短语异步发送到某些服务才能进行音译,然后使用您提到的诸如sendkeys之类的方法将它们推回到键盘缓冲区。 问题是,如果您的应用程序具有焦点,我们将不知道用户希望将音译文本显示在何处,并且如果诸如Word之类的应用程序具有焦点,它将同时接收到真实的击键和音译文本,然后混在一起(一团糟)。 似乎最好是音译文本而不是试图干扰键盘缓冲区-此外,退格键,撤消键等几乎不可能兑现。

您需要编写一个使用Windows文本服务框架或旧版IME框架的dll。 该dll将被加载到语言栏并在您激活时加载; 您的代码(已实现TSF或IME框架所需的一组APIS)将获取key事件,然后可以将其传递给代码,该代码将其转换为字符串并返回给您。然后您可以输入另一个实现的API Windows应用程序的当前文本编辑器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM