Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Вниз

Скриншот в файл на чистом 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.12.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.013 c
4-1129313089
Zoom
2005-10-14 22:04
2005.12.18
Как прочитать блок памяти...


1-1132510190
Дмитрий_05
2005-11-20 21:09
2005.12.18
Использование невизуальных компонентов без формы


2-1133351243
linox
2005-11-30 14:47
2005.12.18
Срочно!!!! Нужно данные с Excell перекинуть на шаблоны в Word


3-1130418816
mefisto
2005-10-27 17:13
2005.12.18
Какую технологию для доступа к данным выбрать ?


4-1129899892
Семен Сорокин
2005-10-21 17:04
2005.12.18
Взять правильную версию переименованого EXE-файла?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский