我想做什么:
我希望我的WPF应用程序能够成功键入任何其他具有文本字段的应用程序,例如记事本。
问题是什么:
如果我按任何模拟击键的按钮(例如'A'),我的应用程序会抢断焦点,现在'记事本'不再聚焦/活动,我的按钮不知道在哪里发送击键,< / p>
我要求的是:如何让我的WPF应用程序不会窃取任何其他应用程序的焦点,这样当我按下我的应用程序按钮时,我可以成功键入按键,这是我的代码:
private void button_Click(object sender, RoutedEventArgs e)
{
InputSimulator.SimulateTextEntry("1");
}
'InputSimulator'来自我上网的库,它可以轻松模拟击键。
**更新,为了澄清,我想要像Surface Pro键盘,这个键盘正是我想要做的,如果我按下它的键盘,当前活动的应用程序保持专注并且sp3键盘能够进入按键,我如何为我的应用程序执行此操作?
答案 0 :(得分:1)
您需要p / invoke user32.dll
,使用FindWindow
获取您尝试写入的应用程序的句柄,然后使用SetForegroundWindow
。然后你可以向那个窗口发送击键。
有关快速示例的信息,请参阅MSDN上的文章:https://msdn.microsoft.com/en-us/library/ms171548.aspx
您还可以通过搜索google for p / invoke和Windows API找到大量示例。