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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Chubi
0 / 0 / 0
Регистрация: 01.01.2011
Сообщений: 6
#1

Получением цвета пикселя из игры - C++

01.01.2011, 23:09. Просмотров 1196. Ответов 5
Метки нет (Все метки)

Добрый день!
Я пытаюсь получить цвет пикселя из игры WoW
Использую такой код:
C++
1
2
3
4
5
6
7
8
9
void main()
    {
    int x = 1102;
    int y = 272;
        HWND test = FindWindow(TEXT("GxWindowClass"),TEXT ("World of Warcraft")); 
        HDC test2 = GetDC(test);
        int pixel_color = GetPixel(test2, x, y );
        cout << pixel_color;
        }
В итоге получаю вот такое страшное число - 218218218218218218
Как мне получить цвет в виде HEX ? (потом он будет нужен для сравнения с эталонным цветом и если они совпадут то будет происходить какое-то действие)
Вообще цвет в этом месте RGB 217,0,0 или HEX D90000.

P.S. Прошу не судить строго я только 3-ий день изучаю c++ =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.01.2011, 23:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получением цвета пикселя из игры (C++):

Определение пикселя цвета в координатах - C++
Подскажите пожалуйста, как можно определить цвет пикселя в указанных координатах на с++ в окне, которое находим по хендлу? Использую...

Как сделать проверку по диапазону цвета пикселя? - C++
Подскажите пожалуйста, как сделать проверку по диапазону цвета пикселя. Т.е. цвет пикселя в координатах постоянно меняется(мигает...

Считывание пикселя и вывод на экран его цвета - C++
Подскажите пожалуйста, как это можно реализовать или где про это можно что-то прочитать. Есть 2мерная матррица,которая складывается друг...

C++ Поиск пикселя заданного цвета и замена другим. - C++
Ребята, помогите пожалуйста с решением задачи. Кучу документации перекопала - никак не могу найти решение. Нужно разработать программу,...

Считывание цвета пикселя конкретного окна в конкретном месте - C++
Добрый день. Помогите пожалуйста. Какбы нужно в конкретном окне программы при нажатии кнопкой мыши считать цвет и каординаты положения...

Выполнить определение цвета пикселя при вождении мышкой по компоненту TImage - C++
В программе мне необходимо выполнять определение цвета пикселя при вождении мышкой по компоненту TImage. Подскажите пожалуйста как можно...

5
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
01.01.2011, 23:16 #2
C++
1
cout << hex << pixel_color;
1
Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
01.01.2011, 23:20 #3
К сожалению, помочь ни чем не смогу, однако интерес берет надо мной верх По-скольку и сам в WoW играл достаточно длительное время, хотелось бы спросить, для каких целей Вам нужен кусочек этой программы? Что Вы хотите написать?
0
Chubi
0 / 0 / 0
Регистрация: 01.01.2011
Сообщений: 6
01.01.2011, 23:38  [ТС] #4
Цитата Сообщение от Минич Посмотреть сообщение
C++
1
cout << hex << pixel_color;
Хмм... модифицировал немного код, вообще он сейчас стал возвращать da, хотя я думал будет D90000
Появившиеся вопросы написал в комментариях в самом коде.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void main()
    {
 
    int x = 1102;
    int y = 272;
    char* need_color = "D90000"; // тут нужна переменная которая бы хранила нужное значение D90000, char* подойдет ? 
 
HWND test = FindWindow(TEXT("GxWindowClass"),TEXT ("World of Warcraft")); 
HDC test2 = GetDC(test);
int pixel_color = GetPixel(test2, x, y );
 
if(need_color == pixel_color) // вот тут я получается сравниваю несравнимое (извиняюсь за тавтологию) как довести эти переменные до такого вида, чтобы их можно было сравнить ?
 
{
PostMessage(test, WM_KEYDOWN , 49, 0);
PostMessage(test, WM_KEYUP , 49, 0);
}
}
2Slimmy, Да все очень просто, я начал переводить своего мини бота к WoWу с autoit на c++.
0
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
02.01.2011, 00:08 #5
Цитата Сообщение от Chubi Посмотреть сообщение
char* need_color = "D90000";
это у тебя получается указатель на строку "D90000", а потом ты адрес сравниваешь с целочисленным значением. Вот так надо:
C++
1
int need_color = 0xD90000;
1
Chubi
0 / 0 / 0
Регистрация: 01.01.2011
Сообщений: 6
02.01.2011, 10:53  [ТС] #6
Цитата Сообщение от Минич Посмотреть сообщение
это у тебя получается указатель на строку "D90000", а потом ты адрес сравниваешь с целочисленным значением. Вот так надо:
C++
1
int need_color = 0xD90000;
точно! =) спасибо, все заработало =)
0
02.01.2011, 10:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.01.2011, 10:53
Привет! Вот еще темы с ответами:

Изменение цвета пикселя в opencv - C++
Добрый вечер. Скажите, пожалуйста, есть ли какой-либо метод у opencv, который выполняет преобразование с изображением, делая его более...

нахождение пикселя RGBA из второго пикселя и их суммы - C++
Собственно вопрос уже в названии, но он мало относится к С++, больше к графике. если параметры RGBA варьируются от 0 до 255. Допустим у...

Бот для игры, эмуляция мышки, анализ цвета \ текста с области экрана - C++
Здравствуйте, простите за беспокойство, но не могу найти толковых статей \ гайдов по написанию ботов имитирующих действия мышки Если у...

Помогите с получением данных - C++
Сидел весь день в учебниках и пособиях кое что с горем попалам написал бинарное дерево но пришел в тупик когда пришло время до вывода...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru