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

Управление калькулятором из другой программы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как увеличить размер дин. массива средствами С++ http://www.cyberforum.ru/cpp-beginners/thread279735.html
Привет всем!!! Подскажите плз, как увеличить размер (т.е добавить один элемент в конец) динамического массива средствами С++. (new и delete) Пример: #include <iostream> #include <process.h> #include <new.h> using std::cout;
C++ Подскажите. Не компилирует текст программы, запрашивает в коде мол не достающую скобку. Ниже приведен текст программы. #include <iostream.h> unsigned int perimetr ( int a,int b); int main() { int a,b; cin >> a; cin >> b; cout << "perimetr=" << perimetr(a,b) ; return 0; http://www.cyberforum.ru/cpp-beginners/thread279734.html
Срочно! Алгоритм Бауэра Замельзона! C++
#include <stdio.h> #include <math.h> #include <iostream> using namespace std; char stack_z; double stack_c; int tos_z=0; int tos_c=0; char number;
C++ кейрус отказывается работать!!
вроде уже какой по счёту кейрус скачиваю с инета.. устанавливаю а в борланде язык не переключается((( или мб это из за того что у меня вин 7 ? Добавлено через 36 секунд чё подскажите сделать с моей бедой?
C++ Как разбить массив по 3 елемента и засунуть в другой массив http://www.cyberforum.ru/cpp-beginners/thread279729.html
Здарова форумчане. Помогите, кому не лень решить задачу по программированию на c++ Кароче нам дан массив чисел от 1 до 18. Сначала нам нужно разбить массив по три елемента, т.е от 1 до 3, от 3 до 6, от 6 до 9, от 9 до 12, от 12 до 15 и от 15 до 18. И получается 6 кусков. Из каждого куска нужно вывести среднее арифметическое. И все эти арифметические занести в одномерный массив. Потом из этого...
C++ Прерывание При вызове прерывание компилятор пишет ошибка доступа. #include <iostream> using namespace std; char a = "hello"; int main() { _asm { подробнее

Показать сообщение отдельно
schdub
 Аватар для schdub
2902 / 1246 / 222
Регистрация: 19.01.2009
Сообщений: 3,210
Завершенные тесты: 1
20.04.2011, 00:33     Управление калькулятором из другой программы
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
#include <windows.h>
#include <winuser.h>
#include <cassert>
 
// в данной строке должно быть то, что написано в заголовке
// главного окна Калькулятора, у меня это "Клалькулятор Плюс"
#define CALC_TITLE "Калькулятор Плюс"
// полный путь к исполнимому файлу Калькулятора в Вашей системе
#define CALC_PATH  "C:\\WINDOWS\\system32\\calc.exe"
 
class CalcClicker
{
private:
    HWND _hwnd;               // ид главного окна калькулятора
    HWND _hBtn2;              // хендл кнопки 2
    HWND _hBtn8;              // ... 8
    HWND _hBtnMulOp;          // ... *
    HWND _hBtnEqOp;           // ... =
 
    // в данную функцию направляеются все хендлы дочерних
    // окон при опросе главного окна Калькулятора. Здесь
    // происходит фильтрация идентификатов необходимых
    // нам кнопок. Реализация: см. ниже класса.
    friend static BOOL CALLBACK enumChildWindows(HWND hwnd, LPARAM lParam);
 
public:
    CalcClicker()
        : _hwnd(0)
        , _hBtn2(0)
        , _hBtn8(0)
        , _hBtnMulOp(0)
        , _hBtnEqOp(0)
    {
        // для начала ищем окно 
        _hwnd = FindWindow(NULL, CALC_TITLE);
        if (!_hwnd)
        {
            // не удалось найти, пробуем запустить калькулятор
            // и опять пробуем искать главное окно программы
            WinExec(CALC_PATH, SW_NORMAL);
            _hwnd = FindWindow(NULL, CALC_TITLE);
            if (!_hwnd)
                // даже после попытки запуска не было обнаружено окно :(
                return;
        }
        // делаем найденное окно 
        SetForegroundWindow(_hwnd);
        // пускаем процесс опроса всех дочерних окон родительского окна калькулятора
        EnumChildWindows(_hwnd, enumChildWindows, reinterpret_cast<LPARAM>(this));
    };
 
    void do2Mul8()
    {
        // проверяем было ли найдено главное окно калькулятора
        assert(_hwnd);
        // проверяем, ищентификаторы всех ли кнопкок мы нашли
        assert(_hBtn2 && _hBtn8 && _hBtnMulOp && _hBtnEqOp);
    
        // жмем кнопку 2
        SendMessage(_hBtn2, BM_CLICK, 0, 0);
        Sleep(1000);
 
        // жмем кнопку *    
        SendMessage(_hBtnMulOp, BM_CLICK, 0, 0);
        Sleep(1000);
 
        // жмем 8-ку
        SendMessage(_hBtn8, BM_CLICK, 0, 0);
        Sleep(1000);
 
        // жмем равно
        SendMessage(_hBtnEqOp, BM_CLICK, 0, 0);
    };
};
 
// ///////////////////////////////////////////////////////////////////////// //
 
static BOOL CALLBACK enumChildWindows(HWND hwnd, LPARAM lParam)
{
    // описание функции: см. в CalcClicker
    CalcClicker* p = reinterpret_cast<CalcClicker*>(lParam);
 
    // берем текст дочернего окна
    char wndCaption[256];
    GetWindowText(hwnd, wndCaption, sizeof(wndCaption));
 
    if (!strcmp(wndCaption, "2"))
        p->_hBtn2 = hwnd;
    else if (!strcmp(wndCaption, "8"))
        p->_hBtn8 = hwnd;
    else if (!strcmp(wndCaption, "*"))
        p->_hBtnMulOp = hwnd;
    else if (!strcmp(wndCaption, "="))
        p->_hBtnEqOp = hwnd;
 
    return TRUE;
}
 
// ///////////////////////////////////////////////////////////////////////// //
 
int main (int argc, char ** argv)
{
    CalcClicker cc;
    cc.do2Mul8();
 
    return 0;
}
 
Текущее время: 10:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru