Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
1

Оптимизировать

09.11.2019, 22:56. Показов 453. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Цель:
1)по ctrl+ЛКМ получить цвет под мышкой
2)по alt+ctrl найти координат с таким цветом
Проблема:
Оно выполняет его НУ ОООООООЧЕНЬ долго
Код:
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
#include <iostream>
#include <Windows.h>
 
void click(int x, int y, POINT _mouse_position)
{
    SetCursorPos(x, y);
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    SetCursorPos(_mouse_position.x, _mouse_position.y);
}
void GetDesktopResolution(int& horizontal, int& vertical)
{
    RECT desktop;
    const HWND hDesktop = GetDesktopWindow();
    GetWindowRect(hDesktop, &desktop);
    horizontal = desktop.right;
    vertical = desktop.bottom;
}
int main()
{
    
    POINT mouse_pos = POINT();
    COLORREF color = RGB(0,0,0);
    int weight;
    int height;
    GetDesktopResolution(weight, height);
 
    
    while (1) {
        if (GetAsyncKeyState(VK_LBUTTON)&&GetAsyncKeyState(VK_CONTROL))
        {
            GetCursorPos(&mouse_pos);
            HDC dc = GetDC(nullptr);
            color = GetPixel(dc, mouse_pos.x, mouse_pos.y);
            ReleaseDC(nullptr, dc);
            std::cout << "R: " << int(GetRValue(color)) << " G:" << int(GetGValue(color)) 
                      << " B:" << int(GetBValue(color)) << " Position: x = " << mouse_pos.x 
                      << ", y =" << mouse_pos.y << std::endl;
            while (GetAsyncKeyState(VK_LBUTTON)) { Sleep(50); }
        }
        else if (GetAsyncKeyState(VK_CONTROL) && GetAsyncKeyState(VK_SHIFT))
        {
            HDC dc = GetDC(nullptr);
            for (int y = 0; y < height; y++)
            {
                for (int x = 0; x < weight; x++)
                {
                    if (color == GetPixel(dc, x, y))
                    {
                        std::cout << "Match found...\n\tAt x = " 
                            << mouse_pos.x
                            << ", y = " << mouse_pos.y 
                            <<  "R: "   << int(GetRValue(color)) 
                            << " G:"    << int(GetGValue(color))
                            << " B:"    << int(GetBValue(color));
                        system("cls");
                    }
                }
            }
            ReleaseDC(nullptr, dc);
        }
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2019, 22:56
Ответы с готовыми решениями:

Посмотрите, что можно оптимизировать в моем коде?
Сабж собственно. Проект для CodeBlocks.

Оптимизировать код
Для решения задачи : &quot;Given an array a that contains only numbers in the range from 1 to a.length,...

Оптимизировать функцию
Как можно оптимизировать (ускорить) следующий фрагмент кода? int F(int a, int b, int c) { if (a...

как оптимизировать
есть задача на рекурсию, решенная на двух языках программирования: Visual C++ и Visual C#. C++:...

0
09.11.2019, 22:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.11.2019, 22:56
Помогаю со студенческими работами здесь

Оптимизировать код
Первое число входного потока - количество чисел Дальше идут те самые числа Надо найти кол-во пар...

Оптимизировать функцию
Помогите оптимизировать функцию она работает правильно только очень медленно :cry: уже несколько...

Оптимизировать код
Добрый день Имеется функция записи строки, символы записываются через дефис ABC-1-2-3-4-5 и тд ...

Оптимизировать алгоритм
Приятель подкинул задачку: Получить новую матрицу В, элемент b которой равен наименьшему из...

Нужно оптимизировать
Есть задание, есть готовый код. Но он не проходит скоростной режим, нужно оптимизировать, помогите...

Оптимизировать код
Есть задача: Квадрат разбит на 4^k равновеликих квадратных клеток. Квадрат перегибается поочередно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru