WPF应用程序窃取焦点

时间:2016-06-02 00:24:11

标签: c# wpf

我想做什么:

我希望我的WPF应用程序能够成功键入任何其他具有文本字段的应用程序,例如记事本。

问题是什么:

如果我按任何模拟击键的按钮(例如'A'),我的应用程序会抢断焦点,现在'记事本'不再聚焦/活动,我的按钮不知道在哪里发送击键,< / p>

我要求的是:如何让我的WPF应用程序不会窃取任何其他应用程序的焦点,这样当我按下我的应用程序按钮时,我可以成功键入按键,这是我的代码:

 private void button_Click(object sender, RoutedEventArgs e)
    {

        InputSimulator.SimulateTextEntry("1");

    }

'InputSimulator'来自我上网的库,它可以轻松模拟击键。

**更新,为了澄清,我想要像Surface Pro键盘,这个键盘正是我想要做的,如果我按下它的键盘,当前活动的应用程序保持专注并且sp3键盘能够进入按键,我如何为我的应用程序执行此操作?

1 个答案:

答案 0 :(得分:1)

您需要p / invoke user32.dll,使用FindWindow获取您尝试写入的应用程序的句柄,然后使用SetForegroundWindow。然后你可以向那个窗口发送击键。

有关快速示例的信息,请参阅MSDN上的文章:https://msdn.microsoft.com/en-us/library/ms171548.aspx

您还可以通过搜索google for p / invoke和Windows API找到大量示例。