Главная страница
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.055 c
14-1132758402
lookin
2005-11-23 18:06
2005.12.18
Локаут и повседневность. USA vs Россия.


2-1132956257
Gala_l
2005-11-26 01:04
2005.12.18
Naity simvol v faile


6-1126371628
alpine
2005-09-10 21:00
2005.12.18
как навети курсор на ссылку ??


2-1133242679
Andry
2005-11-29 08:37
2005.12.18
Экранная клавиатура


8-1120681700
ronyn
2005-07-07 00:28
2005.12.18
Как запустить поиск всей музыки на компе для добавления её в Плей