O puede utilizar C# 's MessageFilter. Debería funcionar mientras que cualquier control/formulario del proceso de su aplicación tenga enfoque.
Código de ejemplo:
class KeyboardMessageFilter : IMessageFilter
{
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == ((int)Helper.WindowsMessages.WM_KEYDOWN))
{
switch ((int)m.WParam)
{
case (int)Keys.Escape:
// Do Something
return true;
case (int)Keys.Right:
// Do Something
return true;
case (int)Keys.Left:
// Do Something
return true;
}
}
return false;
}
}
y que sólo tiene que añadir un nuevo MessageFilter a su aplicación:
Application.AddMessageFilter(new KeyboardMessageFilter());
+1 para la solución más limpia, que también es bueno para los eventos del ratón. ¡Gracias! – AVIDeveloper
¿Qué es 'Helper'? y cómo lo importo? –
http://stackoverflow.com/questions/31953297/the-name-helper-does-not-exist-in-the-current-context – niklon