Здравствуйте. Имеется сайт, нужно сохранить с него картинки. Ссылки на картинки имеют вид sait.com/lala?lol=111&pic=NM, где NM-номер. делаю так:
| Код | procedure TForm1.WebBrowserScreenShot(const wb: TWebBrowser; const fileName: TFileName); var viewObject : IViewObject; r : TRect; bitmap : TBitmap; begin if wb.Document <> nil then begin wb.Document.QueryInterface(IViewObject, viewObject) ; if Assigned(viewObject) then try bitmap := TBitmap.Create; try r := Rect(0, 0, wb.Width, wb.Height) ; bitmap.Height := wb.Height; bitmap.Width := wb.Width; viewObject.Draw(DVASPECT_CONTENT, 1, nil, nil, Application.Handle, bitmap.Canvas.Handle, @r, nil, nil, 0) ; with TJPEGImage.Create do try Assign(bitmap) ; SaveToFile(fileName) ; finally Free; end; finally bitmap.Free; end; finally viewObject._Release; end; end; end; //это была процедура для сохранения скриншота браузера в формате jpg procedure TForm1.Button1Click(Sender: TObject); var urlA: string; i, k:integer; begin edit1.Enabled:=false; k:=0; for I := 1 to 5 do begin k:=k+1; urlA:= edit1.Text; urlA:= urlA+inttostr(k); web1.Navigate(urlA); WebBrowserScreenShot(Web1,'c:\'+inttostr(k)+'.jpg') ; sleep(2000); end; end; end.
|
тоесть сначало прописываю процедуру для сохранения скрина twebbrowser`a в jpg, а затем через цикл выполняю загрузку нужной страницы(от 1 до 5) и применяю процедуру сохранение скрина браузера в jpg, с надеждой что на диске С будут аккуратно лежать 5 картинок в jpg формате. Но отнюдь, ничего не работает Ошибок ничего нет, но и результата нет. Во первых никаких скринов на диске не наблюдается. Во вторых почему то, хоть Я и использую цикл, в браузере, по прошествии нескольких секунд открывается только последняя страница(тоесть с числом 5 на конце, типо этого sait.com/lala?lol=111&pic=5). Имею подозрения что он сразу переходит на эту страницу минуя все остальные(тоесть всякие lala?lol=111&pic=1, lala?lol=111&pic=2, lala?lol=111&pic=3, lala?lol=111&pic=4). Почему это так? Помогите пожалуйста |