Показать сообщение отдельно
  #2  
Старый 30.05.2017, 10:37
Аватар для Decoding
Decoding Decoding вне форума
Местный
 
Регистрация: 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
Ответить с цитированием