Главная страница
    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.006 c
2-1255722657
AlexDan
2009-10-16 23:50
2009.12.06
игнорировать biMinimaze, biMaximize..


2-1255967142
Nucer
2009-10-19 19:45
2009.12.06
Создание класса на основе TIdHTTP


2-1255770639
xyz
2009-10-17 13:10
2009.12.06
компоненты и панель


2-1255613270
pest
2009-10-15 17:27
2009.12.06
7-bit ASCII в заголовке pop письма


2-1255932245
Фуфик
2009-10-19 10:04
2009.12.06
последняя строка Excel





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