Страницы

Поиск по вопросам

пятница, 27 декабря 2019 г.

Скриншот скрытого окна

#winapi #cpp


Как получить изображение со скрытого окна?
Мой код получает лишь снимок той области и если что-то сверху есть, то его и получаю.
    int Grab(HWND hwnd){
        if(!hwnd) return 0;

        MRect rc; GetWindowRect(hwnd, rc);
        HDC dc = GetWindowDC(hwnd);
        if(!dc) return 0;

        // Create compatible DC
        HDC cdc = CreateCompatibleDC(dc);

        // Create a compatible bitmap
        HBITMAP bmp = CreateCompatibleBitmap(dc, rc.GetW(), rc.GetH());

        // Select Bitmap
        HGDIOBJ odc=SelectObject(cdc, bmp);

        // Copy pixels from screen to the BITMAP
        int ret=BitBlt(cdc, 0, 0, rc.GetW(), rc.GetH(), dc, 0, 0, SRCCOPY);

        // Restore bitmap
        SelectObject(cdc, odc);

        // Create image
        if(ret) ret=NewHImage(bmp);

        DeleteObject(bmp);
        // Delete the hBitmapdc as you no longer need it
        DeleteDC(cdc);
        // Release the desktop device context handle
        ReleaseDC(hwnd, dc); 
        return ret;
    }
    


Ответы

Ответ 1



Попробуйте PrintWindow function

Комментариев нет:

Отправить комментарий