/// <summary>Set up a hook to trap keyboard events at a low level</summary> public void Initialize() { if (_keyboardDevice == null) { _keyboardDevice = new InputDevice(InputDevice.DeviceType.Keyboard); } if (_keyboardDevice.Count > 0) { _keyboardMessagePump = new KeyboardMessagePump(); _keyboardMessagePump.Show(); _keyboardDevice.RegisterCallingWindow(_keyboardMessagePump.Handle); _keyboardDevice.KeyPressed += new InputDevice.DeviceEventHandler(KeyPressed); _keyboardDevice.KeyReleased += new InputDevice.DeviceEventHandler(KeyReleased); } }