| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Звук, графика и видео > Проблема скриншота |
| Автор: <Spawn> 23.3.2003, 07:15 |
| Делаю скриншот всего рабочего стола, но моя прога не скринится!! Причем способ перерисовки у этой проги мгновенный, то есть она не оставляет за собой следа(я думаю, что это из за какого то компонента). Как убрать этот эффект? Заранее спасибо. |
| Автор: Vco 23.3.2003, 20:35 |
| а ты немог бы дать код вообще как это делаеться? просто интересна если небольшой выложи плз |
| Автор: December 23.3.2003, 21:37 |
| что-то не очень понятный вопрос. Ты каким методом скриншот делаешь-то? |
| Автор: <Spawn> 23.3.2003, 22:44 | ||
Вот так делаю:
|
| Автор: December 24.3.2003, 07:13 |
| Бррр, как-то сложно! bm:=TBitMap.Create; bm.Width:=Screen.Width; bm.Height:=Screen.Height; DC:=GetDC(0); bm.canvas.handle:=DC; bm.savetofile('s.bmp'); |
| Автор: Dexter 24.3.2003, 19:06 |
| Я не уверен но GetDC(0) возвращает хэндл рабочего стола... |
| Автор: <Spawn> 24.3.2003, 19:25 | ||
Так и есть))) Мне и нужен скрин всего рабочего стола) |
| Автор: Dexter 24.3.2003, 19:37 | ||
Если GetDC(0) возвращает хэндл рабочего стола, то причем тут твоя прога? Она вроде как и не должна скриниться... |
| Автор: <Spawn> 24.3.2003, 19:43 |
| Скринится должно все что лежит на рабочем столе! Я проверял - другие проги видно на скринах |
| Автор: Dexter 24.3.2003, 19:44 |
| Ща подожди я у себя попробую... |
| Автор: Dexter 24.3.2003, 19:56 | ||
У меня все работает тока я немного код подправил (вобщем-то несущественно):
|
| Автор: <Spawn> 24.3.2003, 20:11 |
| Ну у меня тоже все работает, только вот проблема в том, что сама моя прога не скринится)) Я говорю, что с неи что то не то - у нее не стандартная перерисовка. То есть стандартно окна при перетаскивании оставляют за собой след небольшои, а моя прога не оставляет ни какого следа, т.е. перерисовка идет незамедлительно! Возможно это из-за какого то компонента (я использую нестандартные компоненты). Я как то постил подобную тему, но поленился тогда перебрать все компоненты на форме, видимо придется с это сделать) |
| Автор: man2002ua 25.3.2003, 01:04 | ||
А поподробнее можно? |
| Автор: <Spawn> 25.3.2003, 01:08 | ||||
Ну я уже писал, что мое окно при перетаскивании его мышкой не оставляет за собой следа, т.е. перерисовка идет мгновено и, если система загружена другими приложениями, то перетаксивание может идти из за етого с подтормозами. |
| Автор: man2002ua 25.3.2003, 01:22 |
| Сначала стирается, а потом рисуется? Как реализовано? Может поэтому и твое окно исчезает при чтении рабочего стола? |
| Автор: <Spawn> 25.3.2003, 01:31 |
| Я не знаю как это реализовано, но в старой теме Vit писал, что есть у виндовза возможность поставить ету опцию на все окна, а у меня сдесь без всяких опций виндоза такая перерисовка. Как реализовано не знаю пока - в свободное время буду компоненты на етой форме пересматривать все (некоторые нестандартные), т.к. все, возможно, из за них. |
| Автор: December 25.3.2003, 02:54 |
| Попробуй сделать скриншот из другой проги, пока твоя спокойна. По идее, всё, кроме крысы, отображается. |
| Автор: <Spawn> 25.3.2003, 02:55 |
| Я и другими прогами пробовал - одна смогла снять мою прогу, а другая нет)) |
| Автор: man2002ua 25.3.2003, 02:56 |
| да просто Print Scrn нажми! и проверь - есть твое окно али нет... |
| Автор: December 25.3.2003, 03:07 |
| Уже писал где-то здесь... keybd_event(VK_SNAPSHOT... Может, получится. |