1

只需要拦截键盘输入、转换并发送回的功能。例如,如果用户按 ai 想发送 e 等。

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

4

2 回答 2

0

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

于 2010-06-09T06:09:50.623 回答
0

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

于 2011-08-24T12:35:48.933 回答