Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

Скриншот в файл на чистом API?   Найти похожие ветки 

 
Jetus ©   (2005-10-14 22:41) [0]

Привет всем!
Вопрос такой: как на чистом API сохранить содержимое экрана (скриншот) в графический файл?


 
Eraser ©   (2005-10-14 22:51) [1]


> Jetus ©   (14.10.05 22:41)

На MSDN пример есть, см. ф-ю BitBlt.


 
Kerk ©   (2005-10-15 01:53) [2]

Программа делает скриншот экрана в формате Jpg.
Писалась на "скорую руку" ..

http://kladovka.net.ru/index.cgi?pid=list&rid=81


 
Jetus ©   (2005-10-15 09:06) [3]

2 Kerk: API там даже и не пахнет
2 Eraser: а можешь помочь немного? Минимальный примерчик?


 
Eraser ©   (2005-10-15 11:50) [4]


> Jetus ©   (15.10.05 09:06) [3]

// Create a normal DC and a memory DC for the entire screen. The
// normal DC provides a "snapshot" of the screen contents. The
// memory DC keeps a copy of this "snapshot" in the associated
// bitmap.

hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL);
hdcCompatible = CreateCompatibleDC(hdcScreen);

// Create a compatible bitmap for hdcScreen.

hbmScreen = CreateCompatibleBitmap(hdcScreen,
                    GetDeviceCaps(hdcScreen, HORZRES),
                    GetDeviceCaps(hdcScreen, VERTRES));

if (hbmScreen == 0)
   errhandler("hbmScreen", hwnd);

// Select the bitmaps into the compatible DC.

if (!SelectObject(hdcCompatible, hbmScreen))
   errhandler("Compatible Bitmap Selection", hwnd);

       // Hide the application window.

       ShowWindow(hwnd, SW_HIDE);

        //Copy color data for the entire display into a
        //bitmap that is selected into a compatible DC.

       if (!BitBlt(hdcCompatible,
              0,0,
              bmp.bmWidth, bmp.bmHeight,
              hdcScreen,
              0,0,
              SRCCOPY))

       errhandler("Screen to Compat Blt Failed", hwnd);

       // Redraw the application window.

       ShowWindow(hwnd, SW_SHOW);


 
alpet ©   (2005-10-15 15:20) [5]

HINT: Чтобы слоеные окна (layered, вобщем полупрозрачные) захватывались в скриншот к последнему параметру добавляют CAPTUREBLT: BitBlt (...., SRCCOPY or CAPTUREBLT).


 
Eraser ©   (2005-10-15 19:37) [6]


> alpet ©   (15.10.05 15:20) [5]

Насчёт CAPTUREBLT не знал, хоть они и описан в MSDN... наверное внимание не обратил.
Одно время интересовал ворос перехвата хинтов в win2k/XP.
Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2005.12.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.061 c
1-1132553257
dreamse
2005-11-21 09:07
2005.12.18
Как в DBChart выводить значения времени ?


1-1132294663
Пётр
2005-11-18 09:17
2005.12.18
Сохранение в файл StringGrid методом SaveToFile


4-1129888703
ZZZ
2005-10-21 13:58
2005.12.18
Программное изменение раскладки клавиатуры.


14-1132924328
_Seldon_
2005-11-25 16:12
2005.12.18
как обмануть фильтр на прокси сервере


2-1133694436
dikiy
2005-12-04 14:07
2005.12.18
hook