C#:从非活动窗口发送输入

时间:2009-08-16 13:52:11

标签: c# wpf interop window

我正在尝试从没有焦点的WPF Window发送输入。我们的想法是创建一个虚拟小键盘,按Alt+M例如发送Alt+Numpad0。我有迈克尔肯尼迪的global hooks工作,但我找不到办法:

1)从非活动窗口发送密钥

2)吞下这些键,使它们不被具有焦点的应用程序处理。

第二次修复后,第二个可能会成为非问题。

System.Windows.Forms.SendKeys无效,因为我需要模拟Alt+xxx组合才能生成正确的字符。我还尝试了来自MSDN postSystem.Windows.Input.InputManager.Process(),但如果发送输入的窗口没有焦点,我使用的InputSource(第二个参数 - Keyboard.PrimaryDevice.ActiveSource)为空。

有什么想法吗?

为什么虚拟小键盘?在我的笔记本电脑上没有小键盘(Studio 1555),如果没有打开charmap,我就无法输入符号 - 感谢戴尔!

1 个答案:

答案 0 :(得分:1)

查看Windows Input Simulator以模拟击键。或者使用AutoHotkey抓取任何击键并将其重新发送为其他击键。