Как имитировать нажатие на клавишу в неактивном окне игры на C++?

Можно ли, имитировать нажатия на клавиши в неактивном окне игры? Чем это делать?
Пробовал через PostMessage и SendMessage, смотрел сообщения через Spy++ они доходили, но в игре ничего не происходило. Заметил, что сообщения отличались от тех, что я получал когда сам, нажимал клавишу в игре. Это происходило из-за того, что я указывал lParam как NULL. Вроде разобрался, как прописать lParam. Сейчас сообщения одинаковые, но игра всё равно не реагирует на них.

int main()
{
    HWND hWnd = FindWindow(L"WindowsForms10.Window.8.app.0.1e3b723_r11_ad1", L"Terraria: теперь в 1D");
    int lParam1 = 1 | 57 << 16;
    int lParam2 = 1 | 57 << 16 | 3 << 30;
    for (int i = 0; i < 100; i++)
    {
        if (i > 0) lParam1 |= 1 << 30;
        PostMessage(hWnd, WM_KEYDOWN, VK_SPACE, lParam1);
        Sleep(100);
    }
    PostMessage(hWnd, WM_KEYUP, VK_SPACE, lParam2);
}

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