Быстрая отправка текста в игру средствами 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 с высокой скоростью, но не мгновенно, в игре же ввод происходит с низкой скоростью. Думаю насчет использования буфера обмена и просто дать возможность пользователю выбрать, какой из способов ввода он хочет использовать.