Jak zrobić program w C++ klikający Enter?


(xDarkness) #1

Witam.

Tak jak w temacie; chciałbym program klikający co wybrany przez użytkownika czas klawisz Enter. Mam już gotowy programik, i proszę tylko o wczepienie składni do kodu.

#include 

#include 

#include 

using namespace std;


HWND hWnd = FindWindow(0, "Brood War"); /* to nazwa okna aplikacji ?? */


void GenerateKey(BYTE vk) {


        INPUT Input;

        ZeroMemory(&Input, sizeof(Input));

        Input.type = INPUT_KEYBOARD;

        Input.ki.dwFlags = KEYEVENTF_EXTENDEDKEY;

        Input.ki.wVk = vk;

        SendInput(1, &Input, sizeof(INPUT));


        return;

}


int main() {

        int a;

        cout << "Co ile mam klikac??: ";

        cin >> a;

        SetForegroundWindow(hWnd);

        for (;;){

        GenerateKey((UCHAR)VkKeyScan('W'));

        GenerateKey((UCHAR)VkKeyScan('A'));

        GenerateKey((UCHAR)VkKeyScan('S'));

        GenerateKey((UCHAR)VkKeyScan('D'));

        Sleep (a * 1000);

}

}

(Volffikk) #2

w WinAPI masz gotową funkcję, która odwala czarną robotę:

link - http://msdn.microsoft.com/en-us/library ... 31(v=vs.85.aspx

Tyle Cię interesuje:

keyboard_event(VirtualKey, 0, flaga, 0);

gdzie VirtualKey to kod przycisku klawiatury (1-254). Lista kodów - http://msdn.microsoft.com/en-us/library ... 31(v=vs.85.aspx a flaga to stan przycisku (0 - wcisnięty || KEYEVENTF_KEYUP - puszczony) przykładowo dla kliknięcia ENTER masz kod:

keyboard_event(VK_RETURN, 0, 0, 0); //wciśnij klawisz (ENTER)

keyboard_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0); //puść klawisz (ENTER)

jeśli Cię to interesuje, to tak samo można obsłużyć myszkę. Poszukaj pod "mouse_event()"


(xDarkness) #3

O! Dzięki wielkie. Gdybyś jeszcze powiedział jak zadeklarować i gdzie wkleić kody, które wstawiłeś, aby po kliknięciu entera było wyświetlane WASD WASD w kółko, a po ponownym kliknięciu, aby było to zatrzymane wraz z pisaniem tekstu przez program.