writeconsoleinput (kernel32)
Last changed: -79.206.152.209

.
Summary

C# Signature:

    /* Writes data directly to the console input buffer. */
    [DllImport("kernel32.dll", EntryPoint = "WriteConsoleInputW", CharSet = CharSet.Unicode, SetLastError = true)]
    internal static extern bool WriteConsoleInput(
        IntPtr hConsoleInput,
        INPUT_RECORD[] lpBuffer,
        uint nLength,
        out uint lpNumberOfEventsWritten);

User-Defined Types:

Notes:

The only practical usage for this i've found is for debugging code reliant on ReadConsoleInput.

Please add if you've found something else that's useful

Tips & Tricks:

Please add some!

Sample Code:

    [DllImport("kernel32")]
    public static extern IntPtr GetStdHandle(StdHandle index);

    public enum StdHandle
    {
    OutputHandle = -11,
    InputHandle = -10,
    ErrorHandle = -12
    }

    static void Main(string[] args)
    {
    INPUT_RECORD[] record = new INPUT_RECORD[1];

    record[0].EventType = INPUT_RECORD.KEY_EVENT;

    record[0].KeyEvent = new KEY_EVENT_RECORD();
    record[0].KeyEvent.UnicodeChar = 'a';
    record[0].KeyEvent.AsciiChar = (byte)'a';
    record[0].KeyEvent.bKeyDown = true;

    uint recordsWritten = 0;
    bool boi = WriteConsoleInput(GetStdHandle(StdHandle.InputHandle), record, 1, out recordsWritten);
    }

Alternative Managed API:

Do you know one? Please contribute it!

Documentation