Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать скриншот экрана


Страницы:   1 2

Andrewtitoff ©   (2008-03-20 15:07:00) 

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

procedure ScreenToJPG(filename:String);
 var
 bm:TBitMap;
 jpg:TJPEGImage;
 begin
 bm:=TBitMap.Create;
 bm.Width:=Screen.Width;
 bm.Height:=Screen.Height;
 BitBlt(bm.Canvas.Handle,0,0,bm.Width,bm.Height,GetDC(0),0,0,SRCCOPY);
 jpg:=TJPEGImage.Create;
 jpg.Assign(bm);
 jpg.SaveToFile(filename);
 jpg.Free;
 bm.Free;
 end;

то у меня на нем неотображается одна из форм(которая StayOnTop) и я предпологаю что при таком способе изображения из видеоплееров тоже небудет отображаться..., а нельзя ли это как нибудь сделать через видеопамять, помнится когдато давно на Паскале (правда в текстовом режиме) очень просто делалось через память, т.е. описывалиль массивы типа page0, page1, и т.д. размером в один экран по абсолютному адресу и потом уже ими манипулировали, это было очень удобно например сто бы при прорисовке окошек особенно на заднем плане изображение не моргало отрисовывалось просто все на невидимой области видеопамяти, скажем page1, а затем page0:=page1 и вуаля!...

Так вот не подскажите ли как сделать примерно тоже самое в дельфи и в графическом режиме, т.е. тупо порсто взять участок видеопамяти который отображается на мониторе и сохранить его в TBitmap  ?


Kolan   (2008-03-20 16:09:00) [21]

Ну так делай как делал на паскале, раз разницы нет…


Andrewtitoff   (2008-03-20 15:59:00) [22]

2 Сергей М.
И какая разница скольки задачные ОС, видеопамять то она есть и определенный ее участок все время отображается на мониторе, а все остальное предрассудки язычников высокого уровня...  =)))


Andrewtitoff   (2008-03-20 15:57:00) [23]

2 Плохиш
Аха...  =)))
2 Сергей М.
Ну так то оно так, только железо то принципиально не изменилось.., и видеопамять как была - так и осталась, а следовательно до нее как то можно добраться..., ниужели нельзя прочитать содержимое участка памяти?... =)))


Сергей М.   (2008-03-20 15:52:00) [24]


> Плохиш ©   (20.03.08 15:43) [9]


)

Мне что ж, лекцию о драйверах режима ядра нужно было прочитать ?)


Плохиш   (2008-03-20 15:43:00) [25]


> Сергей М. ©   (20.03.08 15:40) [8]

Помог, называется :-)) А кодер так на тебя надеялся...


Сергей М.   (2008-03-20 15:40:00) [26]


> помнится когдато давно на Паскале (правда в текстовом режиме)
> очень просто делалось через память


Вспомнила бабушка как девушкой была)

На дворе уже давно многозадачныеОС)


Johnmen   (2008-03-20 15:40:00) [27]

Ты ещё чуть-чуть помлякай, глядишь и ответит кто...


Andrewtitoff   (2008-03-20 15:37:00) [28]

2 Palladin
Мля..., ты хоть сам то смотрел что там "google + как сделать скриншот экрана", или тебе вопрос до конца лень дочитать?..., везде приводятся примеры на подобии того что я привел, а я спрашитваю про видеопамять...

2 Johnmen
Ты сам то смотрел что там в ссылке которую ты дал?, или тебе тоже лень внимательно вопрос прочитать?...

Хороше, поставлю вопрос более конкретно:
Как взять видимый на мониторе участок видеопамяти и засунуть его в TBitmap?


Palladin   (2008-03-20 15:25:00) [29]

google + как сделать скриншот экрана

на каждом углу...


Johnmen   (2008-03-20 15:19:00) [30]

Может почитать чего?
Напр.
http://www.delphisources.ru/pages/faq/base/click_print_screen.html


Andrewtitoff   (2008-03-20 15:11:00) [31]

Точнее не его туда, а ее в него...


Andrewtitoff   (2008-03-20 15:11:00) [32]

Мля..., да я и не говорил что он там лежит..., я спрашиваю как его туда засунуть....


Johnmen   (2008-03-20 15:08:00) [33]

С чего ты взял, что в видеопамяти лежит TBitmap? :)))


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо