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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема скриншота 
:(
    Опции темы
<Spawn>
Дата 23.3.2003, 07:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Делаю скриншот всего рабочего стола, но моя прога не скринится!! Причем способ перерисовки у этой проги мгновенный, то есть она не оставляет за собой следа(я думаю, что это из за какого то компонента). Как убрать этот эффект? Заранее спасибо.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Vco
Дата 23.3.2003, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а ты немог бы дать код вообще как это делаеться? просто интересна если небольшой выложи плз


--------------------
Я всегда где-то рядом...! user posted image
PM MAIL WWW ICQ   Вверх
December
Дата 23.3.2003, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


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

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



что-то не очень понятный вопрос. Ты каким методом скриншот делаешь-то?


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 23.3.2003, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Вот так делаю:

Код
procedure SaveScreen(Path:string);
var
bm:TBitMap;
DC:HDC;
buf:integer;
begin
try
bm:=TBitMap.Create;
bm.Width:=Screen.Width;
bm.Height:=Screen.Height;
try
 DC:=GetDC(0);
 BitBlt(bm.Canvas.Handle, 1, 1, bm.Width, bm.Height, DC, 0, 0, SRCCOPY);
finally
 ReleaseDC(0,DC);
end;
Buf:=StrToInt(ScreenCount);
bm.SaveToFile(Path+Format('Screen%d.bmp',[Buf]));
Inc(Buf);
ScreenCount:=IntToStr(Buf);
finally
bm.Free;
end;
end;


Это сообщение отредактировал(а) <Spawn> - 23.3.2003, 22:45


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
December
Дата 24.3.2003, 07:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Antitheorist
****


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

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



Бррр, как-то сложно!

bm:=TBitMap.Create;
bm.Width:=Screen.Width;
bm.Height:=Screen.Height;

DC:=GetDC(0);
bm.canvas.handle:=DC;
bm.savetofile('s.bmp');


--------------------
Для друзей с винграда - скидки на разработку сайтов
PM MAIL WWW ICQ   Вверх
Dexter
Дата 24.3.2003, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1562
Регистрация: 2.7.2002
Где: Москва, Бирюлево

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



Я не уверен но GetDC(0) возвращает хэндл рабочего стола...


--------------------
The only thing you really know about me is...
...that's all you'll ever know
PM MAIL ICQ   Вверх
<Spawn>
Дата 24.3.2003, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Цитата(Dexter @ 24.3.2003, 11:06)
Я не уверен но GetDC(0) возвращает хэндл рабочего стола...

Так и есть))) Мне и нужен скрин всего рабочего стола)


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Dexter
Дата 24.3.2003, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1562
Регистрация: 2.7.2002
Где: Москва, Бирюлево

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



Цитата

Делаю скриншот всего рабочего стола, но моя прога не скринится


Если GetDC(0) возвращает хэндл рабочего стола, то причем тут твоя прога? Она вроде как и не должна скриниться...


--------------------
The only thing you really know about me is...
...that's all you'll ever know
PM MAIL ICQ   Вверх
<Spawn>
Дата 24.3.2003, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Скринится должно все что лежит на рабочем столе! Я проверял - другие проги видно на скринах


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
Dexter
Дата 24.3.2003, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1562
Регистрация: 2.7.2002
Где: Москва, Бирюлево

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



Ща подожди я у себя попробую...


--------------------
The only thing you really know about me is...
...that's all you'll ever know
PM MAIL ICQ   Вверх
Dexter
Дата 24.3.2003, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1562
Регистрация: 2.7.2002
Где: Москва, Бирюлево

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



У меня все работает тока я немного код подправил (вобщем-то несущественно):

Код

procedure TForm1.Button1Click(Sender: TObject);
var
 bm:TBitMap;
 DC:HDC;
begin
   bm:=TBitMap.Create;
   bm.Width:=Screen.Width;
   bm.Height:=Screen.Height;
   DC:=GetDC(0);
   BitBlt(bm.Canvas.Handle, 1, 1, bm.Width, bm.Height, DC, 0, 0, SRCCOPY);
   ReleaseDC(0,DC);
   bm.SaveToFile('c:\Screen1.bmp');
   bm.Free;
end;



--------------------
The only thing you really know about me is...
...that's all you'll ever know
PM MAIL ICQ   Вверх
<Spawn>
Дата 24.3.2003, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Ну у меня тоже все работает, только вот проблема в том, что сама моя прога не скринится)) Я говорю, что с неи что то не то - у нее не стандартная перерисовка. То есть стандартно окна при перетаскивании оставляют за собой след небольшои, а моя прога не оставляет ни какого следа, т.е. перерисовка идет незамедлительно! Возможно это из-за какого то компонента (я использую нестандартные компоненты). Я как то постил подобную тему, но поленился тогда перебрать все компоненты на форме, видимо придется с это сделать)


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
man2002ua
Дата 25.3.2003, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата
у нее не стандартная перерисовка

А поподробнее можно?


--------------------
"Нет ничего более постоянного, чем временное"
PM MAIL   Вверх
<Spawn>
Дата 25.3.2003, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

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



Цитата(man2002ua @ 24.3.2003, 17:04)
Цитата
у нее не стандартная перерисовка

А поподробнее можно?

Ну я уже писал, что мое окно при перетаскивании его мышкой не оставляет за собой следа, т.е. перерисовка идет мгновено и, если система загружена другими приложениями, то перетаксивание может идти из за етого с подтормозами.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
man2002ua
Дата 25.3.2003, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Сначала стирается, а потом рисуется? Как реализовано?
Может поэтому и твое окно исчезает при чтении рабочего стола?


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

Запрещено:

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

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

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

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


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

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


 




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


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

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