Мне нужен захват Microsoft Edge окно и попробовал с PrintWindow
, но unfortunately it doesn't work. Затем, теперь я хочу попробовать использовать Canvas.CopyRect
api.Как захватить только окно браузера Microsoft Edge?
Я попытался с следующим кодом, но вызывают ошибку в нарушения прав доступа на линии показан на скриншоте ниже:
procedure ScreenShotWindow;
var
c: TCanvas;
r, t: TRect;
h: THandle;
Bild: TBitMap;
begin
c := TCanvas.Create;
h := FindWindow(nil, 'Microsoft Edge');
c.Handle := GetWindowDC(h);
GetWindowRect(h, t);
try
r := Rect(0, 0, t.Right - t.Left, t.Bottom - t.Top);
Bild.Width := t.Right - t.Left; { <-- Access Violation Here }
Bild.Height := t.Bottom - t.Top;
Bild.Canvas.CopyRect(r, c, t);
Bild.SaveToFile('test'+ RandomPassword(10)+'.bmp');
finally
ReleaseDC(0, c.Handle);
c.Free;
end;
end;
Я до сих пор не знаю, если после того, как исправить этот код, это будет в состоянии захватить Microsoft Edg, так что если кто-то знает какой-то способ, который работает, также скажите мне пожалуйста: D.
В следующий раз, пожалуйста, укажите строку нарушения прав доступа или другую ошибку с комментарием (// нарушение доступа к этой строке) в коде вместо изображения вашего кода. –
Действительно, изображения занимают место, которое кто-то платит за :-) Так что, если это не совсем необходимо, люди должны воздерживаться от загрузки изображений. –