如何在前景窗口获取之前捕获击键?

时间:2013-04-27 20:00:52

标签: c# .net visual-studio-2010

我正在 C#中使用Google Transliteration(Google输入工具)工具。它显示我们正在键入的任何窗口的建议窗口(找到插入位置并在其下方显示窗口)。但焦点(前台进程)仍然在我们输入的应用程序中(例如,Word,Notepad等)。

我想实现Google Transliteration的这些功能:

  • 它会在另一个进程获取之前捕获击键。
  • 在重命名文件夹或文件时,我们可以从建议中选择单词 窗口出现使用up&向下箭头键,然后按Enter键。但是 重命名文本字段仍将处于活动状态。击键将是 在重命名文本字段之前捕获。

Google Input Tools (while renaming a folder...

我想实现类似Google Transliteration的通用文本建议列表(窗口)。

如何在另一个进程获取之前捕获击键(阻止前台进程获取它)? (主要问题)

如何捕捉击键(向上和向下箭头键并输入键)并从单词列表中选择一个选项而不关注“单词列表”窗口? (插入符号应保持活动状态并在前景处理文本字段上闪烁。例如,文件夹重命名文本字段)

有人请帮我解决这个问题。 我已经找到了this one,但它没有帮助我解决我的问题。 Capturing keystrokes without focus

1 个答案:

答案 0 :(得分:1)

你混合了两个不同的问题。第一个问题 - 捕捉键盘输入 - 与第二个无关 - 制作一个不可聚焦的窗口。

第一个问题的解决方案非常简单 - 如链接中所述,除了低级窗口挂钩之外,没有其他方法可以做到这一点。

第二个问题更难,解决方案可能需要一些实验,创造力和WinAPI知识。示例包括hereherehere