public static void Init(System.Windows.Forms.Control targetControl) { if (_Keyboard == null) { _Keyboard = new Keyboard(); } if (_EmptyState == null) { _EmptyState = new Keyboard(); } _Device = new Device(SystemGuid.Keyboard); _Device.SetCooperativeLevel(targetControl, CooperativeLevelFlags.Foreground | CooperativeLevelFlags.NonExclusive); _Device.SetDataFormat(DeviceDataFormat.Keyboard); Timer = new Timer(); double InitTime = Timer.GetAbsoluteTime(); for (int i = 0; i < _Keyboard.KeysElapsedTime.Length; i++) { _Keyboard.KeysElapsedTime[i] = InitTime; } try { _Device.Acquire(); } catch (DirectXException e) { Console.WriteLine(e.Message); } }
public void Poll() { try { _Device.Poll(); for (int i = 0; i < KeysReleased.Length; i++) { PrevKeyState[i] = KeysHeld[i]; } KeyState = _Device.GetPressedKeys(); for (int i = 0; i < KeysPressed.Length; i++) { KeysPressed[i] = false; } for (int i = 0; i < KeyState.Length; i++) { if (!KeysHeld[(int)KeyState[i]]) { KeysPressed[(int)KeyState[i]] = true; KeysPrevElapsedTime[(int)KeyState[i]] = KeysElapsedTime[(int)KeyState[i]]; KeysElapsedTime[(int)KeyState[i]] = Timer.GetAbsoluteTime(); } } for (int i = 0; i < KeysHeld.Length; i++) { KeysHeld[i] = false; } for (int i = 0; i < KeyState.Length; i++) { KeysHeld[(int)KeyState[i]] = true; } for (int i = 0; i < KeysReleased.Length; i++) { KeysReleased[i] = PrevKeyState[i] && !KeysHeld[i]; } } catch (NotAcquiredException) { try { _Device.Acquire(); } catch (Exception) { } } catch (InputException) { } catch (NullReferenceException) { } }
public static double Now() { return(t.GetAbsoluteTime()); }
public static void Init(System.Windows.Forms.Control targetControl) { if (_Keyboard == null) _Keyboard = new Keyboard(); if (_EmptyState == null) _EmptyState = new Keyboard(); _Device = new Device(SystemGuid.Keyboard); _Device.SetCooperativeLevel(targetControl, CooperativeLevelFlags.Foreground | CooperativeLevelFlags.NonExclusive); _Device.SetDataFormat(DeviceDataFormat.Keyboard); Timer = new Timer(); double InitTime = Timer.GetAbsoluteTime(); for (int i = 0; i < _Keyboard.KeysElapsedTime.Length; i++) _Keyboard.KeysElapsedTime[i] = InitTime; try {_Device.Acquire();} catch (DirectXException e) { Console.WriteLine(e.Message); } }