Я должен использовать горячие клавиши, которые будут работать из каждого окна и кафедры. В 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
}
}
Но это работает только тогда, когда мое приложение активно и находится сверху, но не работает, когда приложение свернуто (например). Есть ли способ сделать это?