Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];

Вниз

Картинка с экрана   Найти похожие ветки 

 
ZMRaven   (2008-02-01 09:19) [0]

Как взять картинку с экрана?
нашёл такое как Screen - имеет много удобных параметров,
Monitor у них даже DesktopRect можно найти и при этом с него ничего не скопируешь.
подскажите как быть?


 
bioSerg   (2008-02-01 10:04) [1]

:)
  bmp1:=TBitMap.Create;
  bmp1.Width:=Screen.Monitors[n].Width;
  bmp1.Height:=Screen.Monitors[n].Height;
  bmp1.PixelFormat:=pf32bit;
  bmp2:=TBitMap.Create;
  bmp2.Width:=Screen.Monitors[n].Width div k;
  bmp2.Height:=Screen.Monitors[n].Height div k;
  bmp2.PixelFormat:=pf32bit;
  with Screen.Monitors[n] do
   BitBlt(bmp1.Canvas.Handle, 0, 0, Width, Height,
                                                GetDC(h), Left-Screen.DesktopLeft, Top, SRCCOPY);

у меня спросить не мог?


 
homm ©   (2008-02-01 10:54) [2]

> [1] bioSerg   (01.02.08 10:04)
> BitBlt(bmp1.Canvas.Handle, 0, 0, Width, Height,
>                                                GetDC(h)
> , Left-Screen.DesktopLeft, Top, SRCCOPY);

Да Вы, бательна, шутник! Кто рессурсы потом освобождать будет и что такое h ?


 
bioSerg   (2008-02-01 11:11) [3]

:)

  h := FindWindow(PChar("ProgMan"), nil);
  h := GetWindow(h, GW_CHILD);
  h := GetWindow(h, GW_CHILD); // получаем Handle рабочего стола
  bmp1:=TBitMap.Create;
  bmp1.Width:=Screen.Monitors[n].Width;
  bmp1.Height:=Screen.Monitors[n].Height;
  bmp1.PixelFormat:=pf32bit;
  with Screen.Monitors[n] do
  BitBlt(bmp1.Canvas.Handle, 0, 0, Width, Height,                                                GetDC(h), Left-Screen.DesktopLeft, Top, SRCCOPY);
// здесь твоя работа с картинкой (отправка, сохранение и т.д.)
  bmp1.Free;

А ресурсы освобождать нужно где-то дальше, каюсь написал лишнего :)


 
homm ©   (2008-02-01 11:43) [4]

> [3] bioSerg   (01.02.08 11:11)
> А ресурсы освобождать нужно где-то дальше, каюсь написал
> лишнего :)

И как же ты собрался освободить рессурс, который ты получил и сразу передл в функцию, не оставив даже указателя на него?


 
ZMRaven   (2008-02-01 12:48) [5]

homm, ошибки это плохо - понятно.
напишите ваш вариант?


 
ketmar ©   (2008-02-01 13:00) [6]

>напишите ваш вариант?
$30.


 
homm ©   (2008-02-01 14:31) [7]

> [6] ketmar ©   (01.02.08 13:00)

Не демпингуй. Тебе откат будет в случае чего :)


 
New   (2008-02-04 04:49) [8]

var
 Bitmap: TBitmap;
 DC: HDC;
begin
 Bitmap:= TBitmap.Create;
 Bitmap.Width:= Screen.Width;
 Bitmap.Height:= Screen.Height;
 DC:= GetDC(0);
 BitBlt(Bitmap.Canvas.Handle, 0, 0, Bitmap.Width, Bitmap.Height, DC, 0, 0, SRCCOPY);
 Image1.Canvas.StretchDraw(Image1.Canvas.ClipRect, Bitmap);
 Bitmap.Free;
 ReleaseDC(0, DC);



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.005 c
2-1256036827
Pascal96
2009-10-20 15:07
2009.12.06
Задачка на Pascal


2-1255533352
madmech
2009-10-14 19:15
2009.12.06
Как отстроить ширину и высоту у DBGrid


15-1254493923
ocean
2009-10-02 18:32
2009.12.06
Хочу наладонник с навигацией GPS покруче.


11-1208955774
andreil
2008-04-23 17:02
2009.12.06
Как указать цвет пикселя 8-битному изображению?


4-1224815622
Skazi21101
2008-10-24 06:33
2009.12.06
Вопрос по RS-232C





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский