/// <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); } }
protected virtual void Dispose(bool disposing) { if (disposing) { if (_keyboardDevice == null) { return; } _keyboardDevice.KeyPressed -= new InputDevice.DeviceEventHandler(KeyPressed); _keyboardDevice.KeyReleased -= new InputDevice.DeviceEventHandler(KeyReleased); if (_keyboardMessagePump != null) { _keyboardMessagePump.Dispose(); _keyboardMessagePump = null; } } }