Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Проблемы со снятием изображения с экрана


Автор: RollerCoaster 9.1.2008, 16:10
Добрый день.

При попытке снять изображение с экрана получаю черное изображение. Подскажите, пожалуйста, как с этим бороться... 

Автор: 586 9.1.2008, 16:24
Код в студию

Автор: RollerCoaster 9.1.2008, 17:38
Код

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

    HBITMAP hbmScreen =  CreateCompatibleBitmap(hdcScreen, 
                         GetDeviceCaps(hdcScreen, HORZRES), 
                         GetDeviceCaps(hdcScreen, VERTRES)); 
 
    if (hbmScreen == 0) 
        return;

    if (!SelectObject(hdcCompatible, hbmScreen)) 
        return;

     if (!BitBlt(hdcCompatible, 
           0,0, 
           GetDeviceCaps(hdcScreen, HORZRES), GetDeviceCaps(hdcScreen, VERTRES), 
           hdcScreen, 
           0,0, 
           SRCCOPY)) 
           return;




Добавлено через 6 минут и 45 секунд
Выяснил, что 2003 Server не дает доступ консольному приложению к рабочему столу.

Под Windows 2000 тоже иногда получаю черный экран вместо изображения. 

В чем проблема? Что я не так делаю?

Автор: DigitSphinx 9.1.2008, 19:50
Код

HDC hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL); 

попробуйте заменить на
Код

HDC hdcScreen = GetDC(0);

Автор: RollerCoaster 10.1.2008, 18:32
Непомогло. Может дело в правах пользователя?

Автор: jonie 12.1.2008, 01:59
попробуй написать
Код

HWND hwndDesk = GetDesktopWndow();
HDC hdcDesk = GetWindowDC(hwndDesk);
а вдруг поможет)

у меня все ок отработало. как раз давеча писал скриншетер )

Автор: Baib 28.2.2008, 09:26
jonie, можно по-подробней с этого места smile
Интересует сохранение изображения монитора в битмап. Или считывание цвета пикселя с заданными координатами.  Желательно с кодом.. и побольше smile

Автор: Baib 28.2.2008, 23:05
э.. необходимость отпала.. обошелся без этого.. вопросов больше не имею smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)