• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Как получить цвет пикселя в окне, перекрытым другим окном

  • Автор темы Автор темы VladXon
  • Дата начала Дата начала
  • Теги Теги
    c++
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
19 Июл 2017
Сообщения
76
Реакции
9
Хотелось бы узнать, как получить цвет пикселя с игры на заднем фоне, если например у меня открыт хром на весь экран но программа должна определить цвет пикселя по заданной координаты.Не закрывая или сворачивая хром.
 
Последнее редактирование:
Скриншоть рабочую область процесса, работай с изображением
profit

WinApi такое может (2ой ответ):
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Скриншоть рабочую область процесса, работай с изображением
profit

WinApi такое может (2ой ответ):
Пожалуйста, авторизуйтесь для просмотра ссылки.
Лучше уж так
C++:
Expand Collapse Copy
    HWND hWnd = FindWindow(NULL, L"Тут заголовок окна");
    if (hWnd) {
        TRect Rect;
        GetWindowRect(hWnd, &Rect);
        HDC DC = GetWindowDC(hWnd);
        if (DC) {
            Graphics::TBitmap* BMP = new Graphics::TBitmap();
            BMP->Width = Rect.Width();
            BMP->Height = Rect.Height();
            BitBlt(BMP->Canvas->Handle, 0, 0, Rect.Width(), Rect.Height(), DC, 0, 0, SRCCOPY);
            ReleaseDC(hWnd, DC);
            BYTE* p = (BYTE*)BMP->ScanLine[0];
            delete BMP;
            BMP = NULL;
        }
    }
 
  • Ахаха
Реакции: sove
Лучше уж так
C++:
Expand Collapse Copy
    HWND hWnd = FindWindow(NULL, L"Тут заголовок окна");
    if (hWnd) {
        TRect Rect;
        GetWindowRect(hWnd, &Rect);
        HDC DC = GetWindowDC(hWnd);
        if (DC) {
            Graphics::TBitmap* BMP = new Graphics::TBitmap();
            BMP->Width = Rect.Width();
            BMP->Height = Rect.Height();
            BitBlt(BMP->Canvas->Handle, 0, 0, Rect.Width(), Rect.Height(), DC, 0, 0, SRCCOPY);
            ReleaseDC(hWnd, DC);
            BYTE* p = (BYTE*)BMP->ScanLine[0];
            delete BMP;
            BMP = NULL;
        }
    }
Какую библиотеку надо подключить?
 
Назад
Сверху Снизу