• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dlaczego ten HotKey nie działa?

Cloud VPS
0 głosów
497 wizyt
pytanie zadane 16 kwietnia 2020 w C i C++ przez tonn204 Mądrala (7,470 p.)

Cześć. Chcę zrobić HotKey'a do CS:GO, który po naciśnięciu kalwisza X kliknie spację 5 razy. Problem polega na tym, że chociaż, gdy jestem w oknie gry i klikam X (w grze pod tym klawiszem nie ma nic zbindowanego) to postać cały czas idzie w prawo. Czym to może być spowodowane i jak to naprawić? Dzięki za odpowiedzi. 

 

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

using namespace std;

int main()
{
    
log:
    if (GetAsyncKeyState('X'))
    {
        for (int i = 0; i != 5; i++)
        {
            keybd_event(VK_SPACE, 0x20, KEYEVENTF_EXTENDEDKEY | 0, 0);
            Sleep(800);
        }

    }

    while (true)
    {
        if (GetAsyncKeyState('X'))
        {
            for (int i = 0; i != 5; i++)
            {
                keybd_event(VK_SPACE, 0x20, KEYEVENTF_EXTENDEDKEY | 0, 0);
                Sleep(800);
            }
            goto log;

        }
     }

    return 0;
}

 

komentarz 16 kwietnia 2020 przez iKinsure Początkujący (290 p.)
Próbowałeś odpalić grę w oknie i wtedy użyć?
komentarz 16 kwietnia 2020 przez tonn204 Mądrala (7,470 p.)
tak robię
komentarz 16 kwietnia 2020 przez LuQ232 Mądrala (7,200 p.)

@antos, Na początek warto uporządkować kod:


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

using namespace std;

int main()
{

    while (true)
    {
        if (GetAsyncKeyState('X'))
        {
            for (int i = 0; i != 5; i++)
            {
                keybd_event(VK_SPACE, 0x20, KEYEVENTF_EXTENDEDKEY | 0, 0);
                Sleep(800);
            }
        }
    }

    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 16 kwietnia 2020 przez LuQ232 Mądrala (7,200 p.)

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

using namespace std;

int main()
{

    while (true)
    {
        if (GetAsyncKeyState(0x58))
        {
            for (int i = 0; i != 5; i++)
            {
                keybd_event(VK_SPACE, 0x20, KEYEVENTF_EXTENDEDKEY | 0, 0);
                Sleep(800);
            }
        }
    }

    return 0;
}

Teraz kod będzie działał. Problemem była wartość funkcji GetAsyncKeyState().

Na tej stronie znajdziesz kody poszczególnych klawiszy: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

komentarz 16 kwietnia 2020 przez NewEraOfPeace Gaduła (4,790 p.)
static_cast<unsigned>(char) też powinien zadziałać

Podobne pytania

0 głosów
0 odpowiedzi 346 wizyt
+2 głosów
2 odpowiedzi 965 wizyt
pytanie zadane 29 września 2020 w HTML i CSS przez JakSky Stary wyjadacz (14,770 p.)
0 głosów
3 odpowiedzi 335 wizyt
pytanie zadane 21 kwietnia 2015 w Inne języki przez Ehlert Ekspert (215,050 p.)

93,482 zapytań

142,414 odpowiedzi

322,761 komentarzy

62,894 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...