Esempio n. 1
0
        private void CreateInputEvent(NativeMethods.INPUT_RECORD record, out InputEvent inputEvent)
        {
            inputEvent = new InputEvent();

            switch (record.EventType)
            {
            case NativeMethods.MOUSE_EVENT:
                inputEvent.InputType  = InputEventType.Mouse;
                inputEvent.MouseInput = new MouseInputEvent(
                    record.MouseEvent.dwMousePosition.X,
                    record.MouseEvent.dwMousePosition.Y,
                    record.MouseEvent.dwButtonState,
                    record.MouseEvent.dwControlKeyState,
                    record.MouseEvent.dwEventFlags
                    );
                break;

            case NativeMethods.KEY_EVENT:
                inputEvent.InputType     = InputEventType.Keyboard;
                inputEvent.KeyboardInput = new KeyboardInputEvent(
                    record.KeyEvent.wVirtualKeyCode,
                    record.KeyEvent.UnicodeChar,
                    record.KeyEvent.dwControlKeyState,
                    record.KeyEvent.wRepeatCount,
                    record.KeyEvent.bKeyDown
                    );
                break;

            default:
                inputEvent = null;
                break;
            }
        }
Esempio n. 2
0
        public InputEvent GetInput()
        {
            var        record    = new NativeMethods.INPUT_RECORD();
            uint       recordLen = 0;
            InputEvent inputEvent;

            if (!(NativeMethods.ReadConsoleInput(_handler, ref record, 1, ref recordLen)))
            {
                throw new Win32Exception();
            }

            CreateInputEvent(record, out inputEvent);
            return(inputEvent);
        }
Esempio n. 3
0
        public InputEvent MaybeGetInput()
        {
            UInt32 events = 0;

            NativeMethods.GetNumberOfConsoleInputEvents(_handler, out events);
            InputEvent inputEvent = null;

            if (events > 0)
            {
                var  record    = new NativeMethods.INPUT_RECORD();
                uint recordLen = 0;
                if (!(NativeMethods.ReadConsoleInput(_handler, ref record, 1, ref recordLen)))
                {
                    throw new Win32Exception();
                }

                CreateInputEvent(record, out inputEvent);
            }
            return(inputEvent);
        }