C++ Вопрос Что изменить в коде?

Пользователь
Статус
Оффлайн
Регистрация
13 Мар 2018
Сообщения
306
Реакции[?]
52
Поинты[?]
1K
Код:
bool wKeyPressed = false;

            while (true) {
                if (GetAsyncKeyState(VK_CONTROL) & 0x8000) {
                    if (wKeyPressed) {
                        SendKey(0x57, false);
                        
                    }
                }
                else {
                    if (!wKeyPressed) {
                        SendKey(VK_CONTROL, true);
                        if (GetAsyncKeyState(0x45)) {
                            SendKey(VK_CONTROL, true);
                        }
                    }
                }
                
            }
Суть такова, когда я нажимаю W должен прожиматься Control, код работает, но когда я нажимаю E (инвентарь в майне) или ESC (меню), то Control перестает работать когда нажимаешь W, его нужно будет прожать еще раз чтобы все работало.
Ну или кому не лень, нужно просто написать макрос, который когда W зажата, то зажимался бы контрол, а если w отпускается то и контрол отпускается тоже
 
Зайдем и покажем, как делать красиво.
Забаненный
Статус
Оффлайн
Регистрация
31 Мар 2021
Сообщения
256
Реакции[?]
44
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
keybd_event
 
Пользователь
Статус
Оффлайн
Регистрация
13 Мар 2018
Сообщения
306
Реакции[?]
52
Поинты[?]
1K
Зайдем и покажем, как делать красиво.
Забаненный
Статус
Оффлайн
Регистрация
31 Мар 2021
Сообщения
256
Реакции[?]
44
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
while(true)
{
if(GetAsyncKeyState(VK_CONTROL) {
keybd_event(0x57, 0, 0, 0);
keybd_event(0x57, 0, KEYEVENTF_KEYUP, 0);
}
}

кнопка нажимается и отжимается моментально если что)
 
Пользователь
Статус
Оффлайн
Регистрация
13 Мар 2018
Сообщения
306
Реакции[?]
52
Поинты[?]
1K
while(true)
{
if(GetAsyncKeyState(VK_CONTROL) {
keybd_event(0x57, 0, 0, 0);
keybd_event(0x57, 0, KEYEVENTF_KEYUP, 0);
}
}

кнопка нажимается и отжимается моментально если что)
спасибо
Но другой вопрос остается открытым, что делать, если после нажимание Е или ESC контрол слетает и его приходится нажимать заново?
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
30 Авг 2020
Сообщения
777
Реакции[?]
245
Поинты[?]
10K
спасибо
Но другой вопрос остается открытым, что делать, если после нажимание Е или ESC контрол слетает и его приходится нажимать заново?
Это уже проблема в майнкрафте, если ты просто зажмешь контрол, откроешь инвентарь и выйдешь - он тоже отпустится.
Давайте накостылим вместе :da:

Код:
bool wKeyPressed = false;

if(!(GetKeyState(VK_ESC)) || !(GetKeyState(VK_E)) ){

            while (true) {

                if (GetAsyncKeyState(VK_CONTROL) & 0x8000) {

                    if (wKeyPressed) {

                        SendKey(0x57, false);

                       

                    }

                }

                else {

                    if (!wKeyPressed) {

                        SendKey(VK_CONTROL, true);

                        if (GetAsyncKeyState(0x45)) {

                            SendKey(VK_CONTROL, true);

                        }

                    }

                }

               

            }

}
По сути должно работать xd
 
Пользователь
Статус
Оффлайн
Регистрация
13 Мар 2018
Сообщения
306
Реакции[?]
52
Поинты[?]
1K
Это уже проблема в майнкрафте, если ты просто зажмешь контрол, откроешь инвентарь и выйдешь - он тоже отпустится.
Давайте накостылим вместе :da:

Код:
bool wKeyPressed = false;

if(!(GetKeyState(VK_ESC)) || !(GetKeyState(VK_E)) ){

            while (true) {

                if (GetAsyncKeyState(VK_CONTROL) & 0x8000) {

                    if (wKeyPressed) {

                        SendKey(0x57, false);

                     

                    }

                }

                else {

                    if (!wKeyPressed) {

                        SendKey(VK_CONTROL, true);

                        if (GetAsyncKeyState(0x45)) {

                            SendKey(VK_CONTROL, true);

                        }

                    }

                }

             

            }

}
По сути должно работать xd
к сожалению не работает :( , все равно после esc и e отжимается, хз есть ли метод для того, чтобы игнорировать эти кнопки
Это уже проблема в майнкрафте, если ты просто зажмешь контрол, откроешь инвентарь и выйдешь - он тоже отпустится.
Давайте накостылим вместе :da:

Код:
bool wKeyPressed = false;

if(!(GetKeyState(VK_ESC)) || !(GetKeyState(VK_E)) ){

            while (true) {

                if (GetAsyncKeyState(VK_CONTROL) & 0x8000) {

                    if (wKeyPressed) {

                        SendKey(0x57, false);

                     

                    }

                }

                else {

                    if (!wKeyPressed) {

                        SendKey(VK_CONTROL, true);

                        if (GetAsyncKeyState(0x45)) {

                            SendKey(VK_CONTROL, true);

                        }

                    }

                }

             

            }

}
По сути должно работать xd
а вообще, еще спринт врубается если два раза быстро нажать W, можно так попробовать, должно сработать!
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
13 Мар 2018
Сообщения
306
Реакции[?]
52
Поинты[?]
1K
Вопрос в силе, текущая задача сделать так, чтобы кнопка нажималась W быстро два раза, чтобы получился бег, кто то может это сделать и шарит за майнкрафт?
 
Сверху Снизу