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

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

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

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

01.01.2011, 23:09. Просмотров 1063. Ответов 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++ =)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.01.2011, 23:09     Получением цвета пикселя из игры
Посмотрите здесь:

C++ Помогите с получением данных
C++ вывод пикселя
C++ Выполнить определение цвета пикселя при вождении мышкой по компоненту TImage
C++ C++ Поиск пикселя заданного цвета и замена другим.
Считывание пикселя и вывод на экран его цвета C++
С++ Builder Циклы с условием (при вводе адреса цвета (например, 0 255 0) выдавать имя цвета) C++
Считывание цвета пикселя конкретного окна в конкретном месте C++
Определение пикселя цвета в координатах C++
Как сделать проверку по диапазону цвета пикселя? C++
C++ Сложности с получением доступа к членам класса
Описать операции сложения и вычитания векторов с получением нового вектора C++
нахождение пикселя RGBA из второго пикселя и их суммы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Минич
66 / 66 / 3
Регистрация: 26.11.2010
Сообщений: 123
01.01.2011, 23:16     Получением цвета пикселя из игры #2
C++
1
cout << hex << pixel_color;
Slimmy
65 / 18 / 2
Регистрация: 09.10.2010
Сообщений: 97
01.01.2011, 23:20     Получением цвета пикселя из игры #3
К сожалению, помочь ни чем не смогу, однако интерес берет надо мной верх По-скольку и сам в WoW играл достаточно длительное время, хотелось бы спросить, для каких целей Вам нужен кусочек этой программы? Что Вы хотите написать?
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++.
Минич
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;
Chubi
0 / 0 / 0
Регистрация: 01.01.2011
Сообщений: 6
02.01.2011, 10:53  [ТС]     Получением цвета пикселя из игры #6
Цитата Сообщение от Минич Посмотреть сообщение
это у тебя получается указатель на строку "D90000", а потом ты адрес сравниваешь с целочисленным значением. Вот так надо:
C++
1
int need_color = 0xD90000;
точно! =) спасибо, все заработало =)
Yandex
Объявления
02.01.2011, 10:53     Получением цвета пикселя из игры
Ответ Создать тему
Опции темы

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