![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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);