Быстрая отправка текста в игру средствами WinAPI

Нужен способ для ввода текста в игру и другие приложения, текст должен вводится по скорости так же, как и при помощи буфера обмена. (то есть условно мгновенно)

Ранее я использовал SendInput, но ввод происходит медленно, по буквам:

void SendText(wstring text)
{
    INPUT* input = new INPUT[text.size() * 4];
    ZeroMemory(input, sizeof(INPUT) * text.size() * 4);

    for (size_t i = 0; i < text.size() * 2; i += 2)
    {
        input[i].type = input[i + 1].type = INPUT_KEYBOARD;
        input[i].ki.dwFlags = input[i + 1].ki.dwFlags = KEYEVENTF_UNICODE;
        input[i + 1].ki.wScan = text[i / 2];
    }
    SendInput(text.size() * 2, input, sizeof(INPUT));

    delete[] input;
}

UPD: обнаружил что функция выше работает по-разному, в браузере и Sublime Text ввод происходит мгновенно, в VS2019 с высокой скоростью, но не мгновенно, в игре же ввод происходит с низкой скоростью. Думаю насчет использования буфера обмена и просто дать возможность пользователю выбрать, какой из способов ввода он хочет использовать.


Ответы (0 шт):