Exemple #1
0
        private void DeviceOnKeyboardInput(object sender, KeyboardInputEventArgs e)
        {
            if ((int)e.Key == 255)
            {
                // discard "fake keys" which are part of an escaped sequence
                return;
            }
            try
            {
                KeyUtils.CorrectRawInputData(e);

                //Debug.WriteLine($"RawInput {e.Key} {e.MakeCode} {e.ScanCodeFlags} {e.GetDeviceKey()}", "InputEvents");

                if (e.ScanCodeFlags.HasFlag(ScanCodeFlags.Break))
                {
                    pressedKeySequence.RemoveAll(k => k == e.Key);
                    KeyUp?.Invoke(sender, e);
                }
                else
                {
                    if (!pressedKeySequence.Contains(e.Key))
                    {
                        pressedKeySequence.Add(e.Key);
                    }
                    KeyDown?.Invoke(sender, e);
                }
            }
            catch (Exception exc)
            {
                Global.logger.Error("Exception while handling keyboard input. Error: " + exc.ToString());
            }
        }
Exemple #2
0
        private void DeviceOnKeyboardInput(object sender, KeyboardInputEventArgs e)
        {
            if ((int)e.Key == 255)
            {
                // discard "fake keys" which are part of an escaped sequence
                return;
            }

            KeyUtils.CorrectRawInputData(e);

            //Debug.WriteLine($"RawInput {e.Key} {e.MakeCode} {e.ScanCodeFlags} {e.GetDeviceKey()}", "InputEvents");

            if (e.ScanCodeFlags.HasFlag(ScanCodeFlags.Break))
            {
                pressedKeySequence.RemoveAll(k => k == e.Key);
                KeyUp?.Invoke(sender, e);
            }
            else
            {
                if (!pressedKeySequence.Contains(e.Key))
                {
                    pressedKeySequence.Add(e.Key);
                }
                KeyDown?.Invoke(sender, e);
            }
        }