Идёт загрузка страницы...

htp://aptem.net.ru





Как получить снимок экрана (типа screen-capture программ)?

Решение 1

Используйте стандартный Windows API:

используйте hWnd := GetDesktopWindow для получения дескриптора 'рабочего стола';
используйте hDC := GetDC (hWnd) для получения HDC (дескриптора контекста экрана) ;
и не забывайте освобождать (уничтожать дескриптор) hDC после выполнения задачи.

Используя TCanvas.Handle в качестве HDC, можно при помощи WinAPI реализовать функции рисования, или, если это возможно, можно присвоить HDC свойству Handle непосредственно при создании TCanvas.

Решение 2

В D1 (по идее должно работать и в D2) попробуйте это:

Разместите на форме TPaintBox и TButton.


    procedure TForm1.Button1Click(Sender: TObject);

var
DeskTop : TCanvas ;

begin
DeskTop := TCanvas.Create ;
try
with DeskTop do
Handle := GetWindowDC (GetDesktopWindow) ;

with PaintBox1.Canvas do
CopyRect (Rect (0, 0, 200, 200),
DeskTop,
Rect (0, 0, 200, 200))

finally
DeskTop.Free

end
end;

Это скопирует верхнюю левую область рабочего стола в верхнюю левую область вашего TPaintBox. [000121]