Главная страница
    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.009 c
9-1183815378
Dib@zol
2007-07-07 17:36
2009.12.06
По часовой стрелке


15-1255027446
Piter
2009-10-08 22:44
2009.12.06
Word не может открыть файл более 32 MB?


15-1254847110
DDDx
2009-10-06 20:38
2009.12.06
Компилятор Latex для Windows


11-1208529256
CutPaste
2008-04-18 18:34
2009.12.06
Обработка строк в буфере обмена


2-1255767321
Роман
2009-10-17 12:15
2009.12.06
Чтение древа каталогов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский