Попробуйте это:
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]