Глобальные горячие клавиши в WPF, работающие из любого окна

Я должен использовать горячие клавиши, которые будут работать из каждого окна и кафедры. В winforms я использовал:

RegisterHotKey(this.Handle, 9000, 0x0002, (int)Keys.F10);

и

UnregisterHotKey(this.Handle, 9000);

и

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;
    }
}

В моем приложении WPF я пытался сделать:

AddHandler(Keyboard.KeyDownEvent, (KeyEventHandler)HandleKeyDownEvent);

и

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

Но работает только когда мое приложение активно и сверху, а не работает когда приложение свернуто (например ). Есть ли способ сделать это?

13
задан Adam 7 July 2012 в 19:35
поделиться