Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Некорректное взятие скриншота, на удаленном компе 
V
    Опции темы
Alix
Дата 24.3.2008, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

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



В проге делается скриншот, суть такая:
Код
  bitmap := TBitmap.Create;
  bitmap.Width  := width;
  bitmap.Height := Height;
  bitmap.PixelFormat := pf32bit;

  DESCDC := GetDC(0);
//  PrintWindow(handle, bitmap.Canvas.Handle, 0);
  BitBlt(bitmap.Canvas.Handle, 0, 0, Width, Height,
    DESCDC, rect2.Left, rect2.Top, SRCCOPY);
  ReleaseDC(0, DESCDC);

  jpgImage := TJPEGImage.Create;
  jpgImage.Assign(bitmap);
  jpgImage.SaveToFile(saveTo);
  jpgImage.Free;
  bitmap.Free;
К компу цепляюсь через удаленный рабочий стол. Прога работает корректно, скриншот берется отлично. Но если окно удаленного доступа закрыть или даже просто свернуть (только окно доступа, на самом удаленном компе ничего не трогается), то скриншоты - просто белый прямоугольник. Кстати, если использовать PrintWindow вместо bitblt, то в скрин попадает только заголовок окна, а само содержимое окна залито черным цветом.
С чем может быть связано подобное поведение?


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
CompWorm
Дата 25.3.2008, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

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



снять скриншот свернутого окна напрямую нельзя. smile  уже где-то был у меня такая тема. вопрос открыт.


--------------------
PM MAIL   Вверх
Alix
Дата 25.3.2008, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

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



Read attentively, please! Речь о сворачивании окна удаленного доступа, окно, которое снимаем - остается развернутым.


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
Alix
Дата 26.3.2008, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

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



Проблема решилась. По неизвестный мне причинам remote desktop не позволяет брать скриншот если он свернут или закрыт (сам юзер остается активным). А решил я просто поставив radmin, залогинившись и запустив мою прогу, после чего radmin был закрыт. Думаю можно использовать и любое другое аналогичное средство, чтобы залогиниться.


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
Rennigth
Дата 26.3.2008, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

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



Цитата(Alix @  24.3.2008,  16:54 Найти цитируемый пост)
К компу цепляюсь через удаленный рабочий стол.

Ну небось MS так сделала чтобы систему не тормазить и(или) уменьшить трафик...


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Alix
Дата 26.3.2008, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

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



Цитата(Rennigth @  26.3.2008,  16:09 Найти цитируемый пост)
Ну небось MS так сделала чтобы систему не тормазить и(или) уменьшить трафик... 
Ну я так понимаю, что прекратить передачу рабочего стола при сворачивании - это нормально, это траф экономит. Приложения работать продолжают, значит "засыпания" не происходит. Но скрины не берутся, такое ощущение, что графическая система вообще там вырубается, для экономии ресурсов сервера, но все остальное работает (?). Но это только мои догадки. Надо бы почитать про это, но времени сейчас нет (


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
CompWorm
Дата 31.3.2008, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


Профиль
Группа: Участник Клуба
Сообщений: 1689
Регистрация: 6.12.2004
Где: /

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



попробую пояснить еще раз свою точку зрения.

- как я выяснил, GetDC берет канву, если она есть на экране.

- далее по аналогии: 
терминальная сессия, скажем у ПЦэнивеера и RDP - это противоположные вещи. в первом случае - мы работаем на реальной сессии - где функция DC может взять канву, а во втором слуцае - канвы нет, ибо сессия RDP , если я не ошибаюсь (не бейте больно), это "виртуальное рабочее пространство". то есть весь контент, который мы видим, если я правильно понимаю суть РДП, есть только пока у нас открыто окно с этой сессией. сворачивание окна РДП таким образом адекватно не может воспрениматься функциями DC, ибо такое действие, что логично, приравнивается к сворачиванию окна программы с канвой.  smile удивительно, что РДП вообще позоляет брать канву (конечно это связано с тем что я слабо представляю технологию РДП  smile )

совет: 
попробуй использовать вместо виртуальной сессии RDP терминальное подключение через синаптик ПЦэнивеер. в этом случае я могу сказать с уверенностью на 80% что твоя программа будет работать, пока комп не уйдет в спячий режим. 


--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




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


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

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