public override Action Start()
{
IntPtr handle = Process.GetCurrentProcess().MainWindowHandle;
KeyboardDevice = new Keyboard(DirectInputInstance);
if (KeyboardDevice == null)
throw new Exception("Failed to create keyboard device");
KeyboardDevice.SetCooperativeLevel(handle, CooperativeLevel.Background | CooperativeLevel.Nonexclusive);
KeyboardDevice.Acquire();
KeyboardDevice.GetCurrentState(ref KeyState);
setKeyPressedStrategy = new SetPressedStrategy(KeyDown, KeyUp);
getKeyPressedStrategy = new GetPressedStrategy<int>(IsKeyDown);
OnStarted(this, new EventArgs());
return null;
}