Снимок DESKTOP в form.canvas
Попробуйте это:
procedure TScrnFrm.GrabScreen; var
DeskTopDC: HDc;
DeskTopCanvas: TCanvas;
DeskTopRect: TRect;
begin
DeskTopDC := GetWindowDC(GetDeskTopWindow);
DeskTopCanvas := TCanvas.Create;
DeskTopCanvas.Handle := DeskTopDC;
DeskTopRect := Rect(0,0,Screen.Width,Screen.Height);
ScrnForm.Canvas.CopyRect(DeskTopRect,DeskTopCanvas,DeskTopRect);
ReleaseDC(GetDeskTopWindow,DeskTopDC);
end;
|
Примечание: Я не тестировал это, так что не удивляйтесь некоторым системным сообщениям об ошибках. Вы можете передалать данный код под себя, в зависимости от стоящей перед вами задачей. Да, еще, если ваша форма уже загружена и отображена, то вам необходимо предусмотреть механизм обновления снимка при скрытии и показе окна, привязав данную функцию к соответствующим событиям.
[000119]