Форум программистов, компьютерный форум CyberForum.ru

WinAPI с чего начать? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить сумму всех чисел Фибоначчи, которые не превосходят 1000 http://www.cyberforum.ru/cpp-beginners/thread1135174.html
Дорогие программисты, помогите мне с такой вот задачкой, никак не могу решить.Написать на с++ вычислить сумму всех чисел фибоначчи которые не превосходят 1000
C++ С паскаля на с++ Помогите переписать код с паскаля на с++. вот код: var a:array of longint; k, n, t, i:longint; begin readln (n); for i:=1 to n do begin read (t); inc(a); http://www.cyberforum.ru/cpp-beginners/thread1135173.html
C++ Дан символ C и строка S .Удвоить каждое вхождение символа С в строку S
Обработка символьных массивов с помощью указателей: Дан символ C и строка S .Удвоить каждое вхождение символа С в строку S Для модификации строки не использовать дополнительные блоки памяти.После обработки строки освободить выделенный блок памяти.
Хочу научиться программировать C++
Есть большое желание научиться программированию, хотя бы азам оного! Подскажите, с чего начать?
C++ Задание на двумерный массив: Таблица футбольного чемпионата http://www.cyberforum.ru/cpp-beginners/thread1135122.html
Таблица футбольного чемпионата задана квадратной матрицей порядка n, в которой все элементы, принадлежащие главной диагонали, равны нулю, а каждый элемент, не принадлежащий главной диагонали, равен 2, 1 или 0 (числу очков, набранных в игре: 2 – выигрыш, 1- ничья, 0 – проигрыш). а) Найти число команд, имеющих больше побед, чем поражений. б) Определить номера команд, прошедших чемпионат без...
C++ Динамический массив классов Добрый день. Прошу помощи, совета или т.п. Есть класс, который содержит динамический массив на тип double. Вот часть класса: C1.h #pragma once public ref class C1 { подробнее

Показать сообщение отдельно
Faxed
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 7
31.03.2014, 20:11     WinAPI с чего начать?
Знаю, что тема уже поднималась и тем не менее. С чего начать изучать именно winAPI
Например, мой друг написал программу, позволяющую щелкать все время в одном месте и иногда в другом (для игры какой-то. Программа не имеет граф. Интерфейса, но он применяет winAPI . Тоже хочу, но не знаю с чего начать. Сам с++ владею на уровне ооп. Какие книги посоветуете???
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include <cstdio>
#include <windows.h>
 
int dripTimeout;
LPPOINT posCup;
LPPOINT posDrip;
HWND gameWndHandle;
bool dripNow;
bool wantDrip;
 
HHOOK hKeybHook;
 
DWORD dThread;
DWORD dThread2;
 
HANDLE hThread;
HANDLE hThread2;
 
CALLBACK LRESULT kHook(int nCode, WPARAM wParam, LPARAM lParam) {
    if( nCode < 0 )
        return CallNextHookEx(hKeybHook,nCode,wParam,lParam);
 
    if( wParam == WM_KEYDOWN ) {
        KBDLLHOOKSTRUCT* hook = (KBDLLHOOKSTRUCT*)lParam;
        if(hook->vkCode == 0x51){
            if(hThread){
                TerminateThread(hThread, 0);
                TerminateThread(hThread2, 0);
            }
            exit(1);
        }
        else if(hook->vkCode == 0x44){
            wantDrip = !wantDrip;
        }
    }
    return CallNextHookEx(hKeybHook,nCode,wParam,lParam);
}
 
DWORD WINAPI drip(LPVOID lpParameter){
    while(1){
        Sleep(dripTimeout);
        if(wantDrip){
            dripNow = true;
            SetCursorPos(posDrip->x, posDrip->y);
            /*LPARAM lParam = MAKELPARAM(posDrip->x, posDrip->y);
            SendMessage(gameWndHandle, WM_LBUTTONDOWN, MK_LBUTTON, lParam);
            */
            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
            dripNow = false;
        }
    }
    return 2;
}
 
DWORD WINAPI cup(LPVOID lpParameter){
    LPPOINT tmppoint = new POINT;
    while(1){
        GetCursorPos(tmppoint);
        if(tmppoint->x != posCup->x || tmppoint->y != posCup->y || !dripNow)
            SetCursorPos(posCup->x, posCup->y);
        mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
 
        Sleep(10);
    }
    return 3;
}
 
int WINAPI WinMain(
HINSTANCE hInstance,        // äåñêðèïòîð ГІГҐГЄГіГ№ГҐГЈГ® ýêçåìïëÿðГ* îêГ*Г*
HINSTANCE hPrevInstance,        // äåñêðèïòîð ïðåäûäóùåãî ýêçåìïëÿðГ* îêГ*Г*
LPSTR lpCmdLine,            // ГіГЄГ*Г§Г*òåëü Г*Г* êîìГ*Г*Г¤Г*ГіГѕ ñòðîêó
int nCmdShow            // ïîêГ*çûâГ*ГҐГІ ñîñòîÿГ*ГЁГҐ îêГ*Г*
)
{
    wantDrip = true;
    posCup = NULL;
    posDrip  = NULL;
    gameWndHandle = NULL;
    dripNow = false;
 
    printf("Enter C to set cup position\nEnter D to set Drip position\nEnter W to get Window (with cup) handle\nEnter E to end type (if all done)\n>");
    char c = getchar();
 
    bool endType = false;
    while(posCup == NULL || posDrip == NULL || gameWndHandle == NULL || !endType){
        if(endType){
            printf("Something wrong:\n");
            if(posCup == NULL)
                printf("You didn't parse cup position!\n");
            if(posDrip == NULL)
                printf("You didn't parse drip position!\n");
            if(gameWndHandle == NULL)
                printf("You didn't parse window!\n");
            endType = false;
        }
        LPPOINT tmppoint = new POINT;
        switch(c){
        case 'c': case 'C':
            printf("You have 2 seconds to put mouse cursor over the cup button\n");
            Sleep(2000);
            posCup = new POINT;
            GetCursorPos(posCup);
            printf("Cup position: x: %i y: %i \n", posCup->x, posCup->y);
            printf("> ");
            break;
        case 'd': case 'D':
            printf("You have 2 seconds to put mouse cursor over the drip button\n");
            Sleep(2000);
            posDrip = new POINT;
            GetCursorPos(posDrip);
            printf("Drip position: x: %i y: %i \n", posDrip->x, posDrip->y);
            printf("> ");
            break;
        case 'E': case 'e':
            endType = true;
            break;
        case 'w': case 'W':
            printf("You have 2 seconds to put mouse cursor over the window with game\n");
            Sleep(2000);
            GetCursorPos(tmppoint);
            gameWndHandle = WindowFromPoint(*tmppoint);
            printf("> ");
            break;
        }
        c = getchar();
    }
 
    dripTimeout = 5000;
    printf("Enter timeout to drip in milliseconds (1 sec = 1000 millisec)\n");
    scanf("%i", &dripTimeout);
 
    hKeybHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)kHook, hInstance, NULL);
    printf("Press Q to exit\nI will start in 5 seconds. Goto drink tea and eat cookies :3\nPress D if you don't want drop. Press D again to start dropping.\n");
    Sleep(5000);
 
    MSG message;
 
    hThread = CreateThread(NULL, 0, drip, 0, 0, &dThread);
    hThread2 = CreateThread(NULL, 0, cup, 0, 0, &dThread2);
 
    while(GetMessage( &message, NULL, 0, 0 ) ){
        TranslateMessage( &message );
        DispatchMessage( &message );
    }
    UnhookWindowsHookEx(hKeybHook);
    return 1;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 09:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru