Eu consegui fazer assim:
public partial class MainWindow : Window
{
const int WM_KEYUP = 0x0101;
const int VK_F1 = 0x70;
public MainWindow()
{
this.InitializeComponent();
ComponentDispatcher.ThreadPreprocessMessage += ComponentDispatcher_ThreadPreprocessMessage;
}
void OnCommandExecuted(object sender, ExecutedRoutedEventArgs args)
{
MessageBox.Show("HELP");
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Window1 win = new Window1();
win.Show();
}
private void ComponentDispatcher_ThreadPreprocessMessage(ref MSG msg, ref bool handled)
{
if (msg.message == WM_KEYUP)
{
if ((int)msg.wParam == VK_F1)
MessageBox.Show("F1!!!!");
}
}
}
Para Testar, eu criei mais uma nova Window chamada Window1, e fiz uma chamada a essa janela, pois quando eu abrir essa Window1, a MainWindow vai perder o foco e quando eu apertar a tecla F1 ele executa as ações que eu necessite,
ou seja em qualquer janela do meu sistema eu posso usar F1 para fazer qualquer coisa
Alguém tem mais alguma dica/sugestão?
Obrigado!
David Ramires