1) Define constants
const int WM_KEYDOWN = 0x100;
const int WM_KEYUP = 0x101;
2) Add interface, IMessageFilter
public partial class Form1 : Form, IMessageFilter
3) Make message interceptor
public bool PreFilterMessage(ref Message m)
{
Keys keyCode = (Keys)(int)m.WParam & Keys.KeyCode;
if (m.Msg == WM_KEYDOWN && keyCode == Keys.F8) // We'll just handle F8 here
{
MessageBox.Show("Key: " keyCode.ToString());
return true;
}
return false;
}
4) Add message interceptor to forms message handling(in Forms constructor)
Application.AddMessageFilter(this);
Enjoy!
//Lazze