相关疑难解决方法(0)

WPF中的全局热键在每个窗口中工作

我必须使用热键,它将在每个窗口和讲坛上工作.在winforms我用过:

RegisterHotKey(this.Handle, 9000, 0x0002, (int)Keys.F10);
Run Code Online (Sandbox Code Playgroud)

和

UnregisterHotKey(this.Handle, 9000);
Run Code Online (Sandbox Code Playgroud)

和

protected override void WndProc(ref Message m)
{
    base.WndProc(ref m);
    switch (m.Msg)
    {
        case 0x312:
        switch (m.WParam.ToInt32())
        {
            case 9000:
            //function to do
            break;
        }
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的WPF应用程序中,我试过:

AddHandler(Keyboard.KeyDownEvent, (KeyEventHandler)HandleKeyDownEvent);
Run Code Online (Sandbox Code Playgroud)

和

private void HandleKeyDownEvent(object sender, KeyEventArgs e)
{
    if (e.Key == Key.F11 && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
    {
        //function to do
    }
}    
Run Code Online (Sandbox Code Playgroud)

但它仅在我的应用程序处于活动状态且位于顶部时才起作用,但在应用程序最小化时(例如)它不起作用.有什么方法可以做到吗?

c# wpf hotkeys

13
推荐指数
1
解决办法
9918
查看次数

标签 统计

c# ×1

hotkeys ×1

wpf ×1