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

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

PrintScreen [D6, WinXP]


ArtikZ ©   (2007-09-04 16:03:00) 

Как во время выполнения проги програмно сделать PrintScreen рабочего стола?


Denis_   (2007-09-05 18:19:00) [1]


> Ты забыл bmp.free и совсем непонятны 2 строки с Image1.
> А bmp.savetofile не судьба юзануть?

ОТВЕТ :::

> ну это так, я копировал и не обратил внимание.Но ИМХО так
> даже лучше- сразу видно, чего там получилось.Тем более принцип
> один.


> не подумали мы....:(


Dimaxx   (2007-09-05 14:06:00) [2]


> procedure PrintScreenNow(filepath : string);
> var
>  bmp: TBitmap;
> begin
>  bmp := TBitmap.Create;
>  bmp.Width := Screen.Width;
>  bmp.Height := Screen.Height;
>  BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
>
>       GetDC(GetDesktopWindow), 0, 0, SRCCopy);
>  Image1.Picture.Bitmap:=bmp;
>  Image1.Picture.SaveToFile(filename);
> end;

Ты забыл bmp.free и совсем непонятны 2 строки с Image1. А bmp.savetofile не судьба юзануть?


Dib@zol   (2007-09-04 18:20:00) [3]

> [11] Lacmus ©   (04.09.07 17:24)

См. http://www.delphimaster.ru/cgi-bin/forum.pl?id=1188824781&n=3


Lacmus   (2007-09-04 17:24:00) [4]

>Инс ©   (04.09.07 17:15) [9]

По-моему, интереснее "Зачем люди пишут программы-шпионы ?"


clickmaker   (2007-09-04 17:17:00) [5]


> [9] Инс ©   (04.09.07 17:15)

потому что с одного FAQа код тырят. И с одной и той же ошибкой, к тому же :)


Инс   (2007-09-04 17:15:00) [6]

Почему все программы-шпионы так похожи друг на друга?


Denis_   (2007-09-04 17:12:00) [7]


> clickmaker ©   (04.09.07 16:59) [7]
>
> > GetDC(GetDesktopWindow)
>
> а потом удивляемся: куда ресурсы утекают?
> ReleaseDC неплохо бы сделать

не подумали мы....:(


clickmaker   (2007-09-04 16:59:00) [8]


> GetDC(GetDesktopWindow)

а потом удивляемся: куда ресурсы утекают?
ReleaseDC неплохо бы сделать


Denis_   (2007-09-04 16:44:00) [9]


> Они немного разные, у тебя образ загоняется в Image1.Picture.
> Bitmap

ну это так, я копировал и не обратил внимание.Но ИМХО так даже лучше- сразу видно, чего там получилось.Тем более принцип один.


Anatoly Podgoretsky   (2007-09-04 16:34:00) [10]

> Denis_  (04.09.2007 16:24:03)  [3]

Они немного разные, у тебя образ загоняется в Image1.Picture.Bitmap


Denis_   (2007-09-04 16:26:00) [11]

а, блин, не успел.


Ivolg   (2007-09-04 16:24:00) [12]

С помощью функции BitBlt();

 Пример:
...
var
  Bit: TBitMap;
begin
   Bit:=TBitMap.Create;
   Bit.Width := Screen.Width;
   Bit.Height:= Screen.Height;
   BitBlt(Bit.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
   GetDC(GetDesktopWindow), 0, 0, SRCCopy);
   Bit.SaveToFile('C:\Screen.bmp');
   Bit.Free;
end;


Denis_   (2007-09-04 16:24:00) [13]


procedure PrintScreenNow(filepath : string);
var
 bmp: TBitmap;
begin
 bmp := TBitmap.Create;
 bmp.Width := Screen.Width;
 bmp.Height := Screen.Height;
 BitBlt(bmp.Canvas.Handle, 0, 0, Screen.Width, Screen.Height,
      GetDC(GetDesktopWindow), 0, 0, SRCCopy);
 Image1.Picture.Bitmap:=bmp;
 Image1.Picture.SaveToFile(filename);
end;


clickmaker   (2007-09-04 16:08:00) [14]

вариант "в лоб"
keybd_event(VK_SNAPSHOT, 0, 0, 0);
keybd_event(VK_SNAPSHOT, 0, KEYEVENTF_KEYUP, 0);


Наверх

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