Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы со снятием изображения с экрана, Проблема только под Windows 2003 Server 
:(
    Опции темы
RollerCoaster
Дата 9.1.2008, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 15.8.2006

Репутация: нет
Всего: нет



Добрый день.

При попытке снять изображение с экрана получаю черное изображение. Подскажите, пожалуйста, как с этим бороться... 
PM MAIL   Вверх
586
Дата 9.1.2008, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2243
Регистрация: 8.5.2006

Репутация: 39
Всего: 146



Код в студию
PM   Вверх
RollerCoaster
Дата 9.1.2008, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 15.8.2006

Репутация: нет
Всего: нет



Код

    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 тоже иногда получаю черный экран вместо изображения. 

В чем проблема? Что я не так делаю?
PM MAIL   Вверх
DigitSphinx
Дата 9.1.2008, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: нет
Всего: 3



Код

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

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

HDC hdcScreen = GetDC(0);



--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
RollerCoaster
Дата 10.1.2008, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 15.8.2006

Репутация: нет
Всего: нет



Непомогло. Может дело в правах пользователя?
PM MAIL   Вверх
jonie
Дата 12.1.2008, 01:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 7
Всего: 118



попробуй написать
Код

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

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

Это сообщение отредактировал(а) jonie - 12.1.2008, 02:09


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Baib
Дата 28.2.2008, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.9.2004

Репутация: нет
Всего: нет



jonie, можно по-подробней с этого места smile
Интересует сохранение изображения монитора в битмап. Или считывание цвета пикселя с заданными координатами.  Желательно с кодом.. и побольше smile
PM WWW   Вверх
Baib
Дата 28.2.2008, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 15.9.2004

Репутация: нет
Всего: нет



э.. необходимость отпала.. обошелся без этого.. вопросов больше не имею smile
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0987 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.