Beispiel #1
0
        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); }
        }
Beispiel #2
0
        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) { }
        }
Beispiel #3
0
 public static double Now()
 {
     return(t.GetAbsoluteTime());
 }
Beispiel #4
0
        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); }
        }