//[WpfFact]
        public async Task Test_RawInput_DeviceChanges_KeyboardRemoved()
        {
            var device = await RawInputMonitor.MonitorRawInputDeviceChanges(RawInputDevices.Keyboard).Where(args => !args.Added).FirstAsync();

            Assert.False(device.Added);
            Assert.Equal(RawInputDeviceTypes.Keyboard, device.DeviceInformation.DeviceInfo.Type);
        }
        //[WpfFact]
        public async Task Test_RawInput_Left()
        {
            var rawInputObservable = RawInputMonitor.MonitorRawInput(RawInputDevices.Keyboard);

            using (rawInputObservable.Subscribe(ri =>
            {
                if (ri.RawInput.Device.Keyboard.Flags == RawKeyboardFlags.Break)
                {
                    Log.Debug().WriteLine("Key down {0}", ri.RawInput.Device.Keyboard.VirtualKey);
                }
                if (ri.RawInput.Device.Keyboard.Flags == RawKeyboardFlags.Break)
                {
                    Log.Debug().WriteLine("Key up {0}", ri.RawInput.Device.Keyboard.VirtualKey);
                }
            }))
            {
                var device = await rawInputObservable.FirstAsync(args => args.RawInput.Device.Keyboard.VirtualKey == VirtualKeyCode.Left);

                Assert.Equal(RawInputDeviceTypes.Keyboard, device.RawInput.Header.Type);
            }
        }