Симуляция нажатия клавиш

Решил я написать прогу по брутфорсу паролей к одной игре(Rust), и суть в том, что у меня будут вводиться четырёхзначные числа с перебором. На питоне есть такая замечательная библиотека как pyautogui позволяющая симулировать нажатия клавиш с клавиатуры, такая же есть и на плюсах но находится в Windows.h. Итак, я написал проги и на плюсах, и на питоне, протестил, в блокноте всё работает исправно. Но, вот проблема, программа на плюсах работает как-то странно, сперва числа вводятся, а потом после повторных попыток игра будто этих нажатий не замечает, а вот на питоне всё работает довольно спокойно. Это какая-то защита от макросов? Тогда в чём разница этих двух библиотек/языков, они по другому реализованы? Код: (Заранее запикаю звёздочками матюкню в коде)


C++

#include <iostream>
#include <Windows.h>

using namespace std;

int main() 
{   
    setlocale(LC_ALL, "Rus");
    int Num[4] = {0,0,0,0};
    int a = 0, msg = 0, tm = 80;
    char cNum[4];
    INPUT input;
    //Ввод данных
    cout << "Прога для брутфорса 4х значных паролей (т.е. от 0 до 9999).\nMade by Schetovod.\n\nДля выхода из проги нажми Delete" << endl;
    cout << "Achtung!!! Разработчик данной программы индус, поэтому ввод числа начнётся со следующего по счёту.\nНапример: введено 5000. При нажатии F2 будет введено 5001" << endl;
    RSstartApp:
    Sleep(100);
    cout << "С какого числа начнём взламывать ****?" << endl;
    TryAgain:
    while (true) {
        cin >> a;
        if (a < 10000 && a >= 0) {
            break;
        }
        msg++;
        if (msg == 3) {
            cout << "******. У тебя руки чтоли кривые? Введи.*****.нормально.*******.****.число." << endl;
            goto TryAgain;
        }
        if (msg == 8) {
            cout << "******* чтоли? Вводи ЧЕТЫРЁХЗНАЧНОЕ число и не *********!" << endl;
            goto TryAgain;
        }
        if (msg == 11) {
            cout << "Тебе как в палату интернет ваще провели, уважаемый?" << endl;
            goto TryAgain;
        }
        if (msg == 15) {
            cout << "*** иди на ***. Мне за эту работу не платили." << endl;
            return 0;
        }
        
        cout << "Диапазон от 0 до 9999!!!" << endl;
    }
            
    for (int i = 3; i>=0; i--) {
        Num[i] = a % 10;
        a /= 10;
    }
    a--;
    msg = 0;

    cout << "Для введения чисел нажми F2.\nДля повторного ввода числа тыкни Правый ALT.\nЧтобы ввести новую комбинацию нажми Правый CTRL." << endl;
    //Начало работы
    while (true) {
        Sleep(5);
        if (GetAsyncKeyState(VK_DELETE)) {
            return 0;
        }

        if (GetAsyncKeyState(VK_RCONTROL)) {
            goto RSstartApp;
        }

        if (GetAsyncKeyState(VK_RMENU)) {
            for (int i = 0; i <= 3; i++) {
                cout << Num[i];
                cNum[i] = Num[i] + '0';
            }
            cout << endl;

            for (int i = 0; i < 4; i++) {
                ZeroMemory(&input, sizeof(input));
                input.type = INPUT_KEYBOARD;
                input.ki.wVk = VkKeyScanA(cNum[i]);
                SendInput(1, &input, sizeof(INPUT));
                ZeroMemory(&input, sizeof(input));
                input.ki.dwFlags = KEYEVENTF_KEYUP;
                SendInput(1, &input, sizeof(INPUT));
                Sleep(1000);
            }
        }
        if (GetAsyncKeyState(VK_F2)) {
                Num[3]++;
            if (Num[3] > 9) {
                Num[2]++;
                Num[3] = 0;
            }
            if (Num[2] > 9) {
                Num[1]++;
                Num[2] = 0;
            }
            if (Num[0] >= 9 && Num[1] >= 10) {
                cout << "Комбинация не была найдена.\nВведи другое число для взлома, братан." << endl;
                goto RSstartApp;
            }

            for (int i = 0; i <= 3; i++) {
                cout << Num[i];
                cNum[i] = Num[i] + '0';
            }
            cout << endl;

            for (int i = 0; i < 4; i++) {
                ZeroMemory(&input, sizeof(input));
                input.type = INPUT_KEYBOARD;
                input.ki.wVk = VkKeyScanA(cNum[i]);
                SendInput(1, &input, sizeof(INPUT));
                ZeroMemory(&input, sizeof(input));
                input.ki.dwFlags = KEYEVENTF_KEYUP;
                SendInput(1, &input, sizeof(INPUT));
            
                Sleep(tm);
                tm += 100;
            }
            tm = 80;
        }
    }   

}

Python

import pyautogui
import keyboard
ar = str(input("V0.1 С какого числа начнём взламывать **** этим *******?: "))
nu = 0
while 1:
    keyboard.wait('F2')
    pyautogui.typewrite(ar, interval=0.04)
    nu = int(ar)
    nu+=1
    ar = str(nu)

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