вообщем я скриншотю так
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | procedure Screenshot;
var
rcSrc: Trect;
hSrcWnd: HWND;
hDC1: HDC;
hSrcDC: HDC;
hBmp: HBITMAP;
tBmp: TBitmap;
begin
tBmp := TBitmap . Create;
hSrcWnd := FindWindow( nil , PChAR (sN));
GetWindowRect(hSrcWnd, rcSrc);
hDC1 := GetDc(hSrcWnd);
hSrcDC := CreateCompatibleDC(hDC1);
hBmp := CreateCompatibleBitmap(hDC1, rcSrc . Right - rcSrc . Left, rcSrc . Bottom - rcSrc . Top);
SelectObject(hSrcDC, hBmp);
PrintWindow(hSrcWnd, hSrcDC, 0 );
tBmp . Handle := hBmp;
tBmp . SaveToFile( 'c:\000\screenshot.bmp' );
DeleteObject(hBmp);
DeleteDC(hSrcDC);
ReleaseDC(hSrcWnd, hDC1);
tBmp . Free;
end ;
|
Всё норм прикаждом тайминге прога возрастает в размерах на 4-12кб
Код:
1 2 3 4 | procedure TForm1 . Timer1Timer(Sender: TObject);
begin
Screenshot;
end ;
|
многое чё пытался ничё не помогает
Мож у вас есть варинат более правильный использывания PrintWindow