Главная страница
    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-1255876581
kodius
2009-10-18 18:36
2009.12.06
Перебор всех значений в stringgrid


11-1208592364
<>
2008-04-19 12:06
2009.12.06
Много ли ресурсов потребляет невидимая форма?


2-1256050979
CodeRz
2009-10-20 19:02
2009.12.06
Найти число длиной N


1-1227699997
leonon
2008-11-26 14:46
2009.12.06
#ИМЯ? вместо функции при загрузке книги Excel


2-1256102379
St1m
2009-10-21 09:19
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский