コード例 #1
0
        private void DispatchEventProcessing(ConsoleInputEventInfo @event)
        {
            switch (@event.EventType)
            {
            case ConsoleInputEventType.None:
                // This shouldn't ever happen, but just in case...
                break;

            case ConsoleInputEventType.FocusEvent:
                break;

            case ConsoleInputEventType.KeyEvent:
                this.ProcessKeyEvent(@event.KeyEvent);
                break;

            case ConsoleInputEventType.MenuEvent:
                break;

            case ConsoleInputEventType.MouseEvent:
                this.ProcessMouseEvent(@event.MouseEvent);
                break;

            case ConsoleInputEventType.WindowBufferSizeEvent:
                break;

            default:
                throw new NotImplementedException(
                          "Unrecognized console input event type.");
            }
        }
コード例 #2
0
        private ConsoleInputEventInfo[] ListenForEvents()
        {
            // Wait until the console notifies us that at least one event has been received
            WaitForSingleObject(this.handle, INFINITE);

            // Find out the number of console events waiting for us
            GetNumberOfConsoleInputEvents(this.handle, out int unreadEventCount);

            // Allocate an array to read events into, and then read them
            ConsoleInputEventInfo[] values = new ConsoleInputEventInfo[unreadEventCount];
            ReadConsoleInput(
                this.handle,
                values,
                unreadEventCount,
                out _);

            return(values);
        }