Форум программистов, компьютерный форум, киберфорум
C++/CLI Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330

Определить цвет пиксела в заданных координатах на экране

22.09.2014, 12:00. Показов 1867. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Программа при нажатии на button1 определяет открыт ли блокнот, обращается в координаты и если RGB цвет совпадает, то в textBox1 передает соответствующее сообщение, если не совпадает то соответственно передает другое сообщение.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void Handle_games()
        {
            HWND Handle_panzar = FindWindow(L"Notepad", nullptr);
            if (Handle_panzar)
            {
                //textBox1->Text = "Блокнот открыт";
                HDC hdc = GetDC(Handle_panzar);
                COLORREF c = GetPixel(hdc, 13, 11); // координаты определения пикселя
                ReleaseDC(Handle_panzar, hdc);
                if (Handle_panzar, c == RGB(156, 153, 138)) //RGB коды цветов
                {
                    textBox1->Text = "Блокнот открыт: цвет совпадает";
                }
                else
                {
                    textBox1->Text = "Блокнот открыт: цвет НЕсовпадает";
                }
            }
            else
            {
                textBox1->Text = "Блокнот закрыт";
            }
        }
Всё должно быть так в идеале, НО! Программа почему-то не обращается в координаты блокнота и выдает ошибку..
Если закомментировать строку
C++
1
COLORREF c = GetPixel(hdc, 13, 11); // координаты определения пикселя
то ошибка исчезает, но и соответственно в координаты не обращается. При чем не каких синтаксических подчеркиваний нету..

Ошибка компилятора:
Кликните здесь для просмотра всего текста
1>------ Сборка начата: проект: ZT_Panzar, Конфигурация: Debug Win32 ------
1> MyForm.cpp
1>MyForm.cpp(19): warning C4829: Возможно, неправильные параметры функции main. Рекомендуемый вариант - "int main(Platform::Array<Platform::String^>^ argv)"
1>MyForm.obj : error LNK2028: ёё√ыър эр эхЁрчЁх°хээє■ ыхъёхьє (0A00008E) "extern "C" unsigned long __stdcall GetPixel(struct HDC__ *,int,int)" (?GetPixel@@$$J212YGKPAUHDC__@@HH@Z) т ЇєэъЎшш "private: void __clrcall ZT_Panzar::MyForm::Handle_games(void)" (?Handle_games@MyForm@ZT_Panzar@@$$FA$AA MXXZ)
1>MyForm.obj : error LNK2019: ёё√ыър эр эхЁрчЁх°хээ√щ тэх°эшщ ёшьтюы "extern "C" unsigned long __stdcall GetPixel(struct HDC__ *,int,int)" (?GetPixel@@$$J212YGKPAUHDC__@@HH@Z) т ЇєэъЎшш "private: void __clrcall ZT_Panzar::MyForm::Handle_games(void)" (?Handle_games@MyForm@ZT_Panzar@@$$FA$AA MXXZ)
1>D:\ё++\Visual Studio 2013\ZT_Panzar\Debug\ZT_Panzar.exe : fatal error LNK1120: эхЁрчЁх°хээ√ї тэх°эшї ¤ыхьхэЄют: 2
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.09.2014, 12:00
Ответы с готовыми решениями:

Определить цвет в заданных координатах
нужно определить цвет в заданных координатах(не на своей форме), и если он изменился то я сам разберусь что делать Помогите...

Определить в окне цвет пикселя в заданных координатах
Доброго времени суток. Задача такая. Найти окно в названии которого есть &quot;reg555&quot; и определить цвет пикселя с координатами 50*50. ...

Цвет пиксела на экране
Помогите, пожалуйста, сделать по-нормальному программу. В инете видел несколько примеров, но у меня они почему-то не работают. Мне нужно,...

2
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
22.09.2014, 21:42
Лучший ответ Сообщение было отмечено Nalik как решение

Решение

Посмотрите что у вас в свойствах проекта, в дополнительных зависимостях. Вам понадобятся user32.lib и gdi32.lib.
(скрин 1)
И поддержку CLR-среды посмотрите .(скрин 2)
/clr должно быть , вероятно у вас /clr-pure
Миниатюры
Определить цвет пиксела в заданных координатах на экране   Определить цвет пиксела в заданных координатах на экране  
2
 Аватар для Nalik
176 / 124 / 49
Регистрация: 30.11.2012
Сообщений: 1,330
23.09.2014, 13:39  [ТС]
Спасибо большое, помогло! Чтобы я без вас делал бы! Ни за что бы не догалался, что дело не в коде, а в определенной настройке.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.09.2014, 13:39
Помогаю со студенческими работами здесь

Какой функцией можно получить цвет пикселя в заданных координатах?
К примеру while (true) { QCursor::setPos(200, 200); //здесь получаем цвет пикселя if(color_at_position ==...

Определить цвет пиксела в произвольной точке монитора
Доброе время суток. Подскажите, пожалуйста, как определить цвет пиксела в произвольной точке монитора?

Определить, можно ли в многоугольник с вершинами в заданных координатах вписать окружность
требуется написать программу которая определяет можно ли в многоугольник с вершинами в заданных координатах вписать окружность, и если...

Поиск пиксела на экране
Нашел тему. вот топик. Удалено Правила 5.8 Запрещено публиковать ссылки на другие форумы, а также их пропаганда. Вот скрипт......

Цвет пиксела
Приветствую уважаемых форумчан! Ребят, если кто знаком с XNA подскажите как можно получить цвет пиксела, зная его координаты (2D), или...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru