public void HandleProcMessageKeyDown()
 {
     var keyboard = new WindowsKeyboard();
     keyboard.HandleProcMessage((IntPtr)Key.A, (IntPtr)0, 0);
     keyboard.Dispose();
     keyboard.Run();
     Assert.AreEqual(State.Pressing, keyboard.GetKeyState(Key.A));
 }
 public void HandleProcMessageFullLifecycle()
 {
     var keyboard = new WindowsKeyboard();
     keyboard.HandleProcMessage((IntPtr)Key.A, (IntPtr)0, 0);
     keyboard.Run();
     Assert.AreEqual(State.Pressing, keyboard.GetKeyState(Key.A));
     keyboard.Run();
     Assert.AreEqual(State.Pressed, keyboard.GetKeyState(Key.A));
     keyboard.HandleProcMessage((IntPtr)Key.A, (IntPtr)(1 << 0xFF), 0);
     keyboard.Dispose();
     keyboard.Run();
     Assert.AreEqual(State.Releasing, keyboard.GetKeyState(Key.A));
     keyboard.Run();
     Assert.AreEqual(State.Released, keyboard.GetKeyState(Key.A));
 }