30.05.2017, 10:37
|
|
Местный
|
|
Регистрация: 03.06.2006
Адрес: Почту найдете на моем сайте
Сообщения: 576
Версия Delphi: D10.2
Репутация: 214
|
|
Все нормально работает
Код:
function CaptureScreenRect( ARect: TRect ): TBitmap;
var
ScreenDC: HDC;
begin
Result := TBitmap.Create;
Result.Width := ARect.Right - ARect.Left;
Result.Height := ARect.Bottom - ARect.Top;
ScreenDC := GetDC( 0 );
try
BitBlt ( Result.Canvas.Handle, 0, 0, Result.Width,
Result.Height, ScreenDC,
ARect.Left, ARect.Top, SRCCOPY );
finally
ReleaseDC( 0, ScreenDC );
end;
end;
procedure GetSceen;
var
pt : TPoint;
r : TRect;
h : HWND;
bit: TBitmap;
begin
bit:=TBitmap.Create;
GetCursorPos(pt);
h:=WindowFromPoint( pt );
GetWindowRect( h, r );
bit:=CaptureScreenRect( r );
//bit.SaveToFile(ExtractFilePath(Application.ExeName)+'123.bmp');
with Form1 do
begin
Image1.Picture.Bitmap:=bit;
end;
bit.Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetSceen;
end;
Протестировал в XE2
|