Вниз
Скачать: CL | DM;

PrintScreen   Найти похожие ветки 

← →
ArtikZ ©   (2007-09-04 16:03) [0]

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


← →
clickmaker ©   (2007-09-04 16:08) [1]

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


← →
Ivolg ©   (2007-09-04 16:24) [2]

С помощью функции 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) [3]


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;


← →
Denis_ ©   (2007-09-04 16:26) [4]

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


← →
Anatoly Podgoretsky ©   (2007-09-04 16:34) [5]

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

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


← →
Denis_ ©   (2007-09-04 16:44) [6]


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

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


← →
clickmaker ©   (2007-09-04 16:59) [7]


> GetDC(GetDesktopWindow)

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


← →
Denis_ ©   (2007-09-04 17:12) [8]


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

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


← →
Инс ©   (2007-09-04 17:15) [9]

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


← →
clickmaker ©   (2007-09-04 17:17) [10]


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

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


← →
Lacmus ©   (2007-09-04 17:24) [11]

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

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


← →
Dib@zol ©   (2007-09-04 18:20) [12]

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

См. http://delphimaster.net/view/15-1188824781/


← →
Dimaxx ©   (2007-09-05 14:06) [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;

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


← →
Denis_ ©   (2007-09-05 18:19) [14]


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

ОТВЕТ :::

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


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



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.014 c
2-1188559248
Mr.Vlad
2007-08-31 15:20
2007.09.30
String and Single


2-1188981955
Bast
2007-09-05 12:45
2007.09.30
idsmtp и idpop3


15-1188971495
shlst
2007-09-05 09:51
2007.09.30
Озвучивание фильмов


2-1188571097
sashap
2007-08-31 18:38
2007.09.30
Отправка символа другому окну


15-1188541103
Шмелъ
2007-08-31 10:18
2007.09.30
Mail Observer Application




   Наверх